diff --git a/.gitignore b/.gitignore index 3ee62405a2..570c932d28 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,12 @@ __pycache__ *.mo docs/html *.log -resources/i18n/en +resources/i18n/en_US +resources/i18n/en_7S resources/i18n/x-test resources/firmware resources/materials +CuraEngine.exe LC_MESSAGES .cache *.qmlc @@ -31,6 +33,7 @@ cura.desktop .settings #Externally located plug-ins. +plugins/CuraSolidWorksPlugin plugins/Doodle3D-cura-plugin plugins/GodMode plugins/PostProcessingPlugin @@ -39,6 +42,7 @@ plugins/FlatProfileExporter plugins/ProfileFlattener plugins/cura-god-mode-plugin plugins/cura-big-flame-graph +plugins/cura-siemensnx-plugin #Build stuff CMakeCache.txt @@ -54,4 +58,6 @@ cmake_install.cmake #Debug *.gcode run.sh +.scannerwork/ +CuraEngine diff --git a/CMakeLists.txt b/CMakeLists.txt index bdcd8f44c2..44b4b57f54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,15 +45,25 @@ if(NOT APPLE AND NOT WIN32) DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE RENAME cura) - install(DIRECTORY cura + if(EXISTS /etc/debian_version) + install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages FILES_MATCHING PATTERN *.py) - install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py + install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura) + else() + install(DIRECTORY cura + DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages + FILES_MATCHING PATTERN *.py) + install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py + DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/cura) + endif() install(FILES ${CMAKE_BINARY_DIR}/cura.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) + install(FILES ${CMAKE_SOURCE_DIR}/resources/images/cura-icon.png + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps/) install(FILES cura.appdata.xml - DESTINATION ${CMAKE_INSTALL_DATADIR}/appdata) + DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) install(FILES cura.sharedmimeinfo DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/ RENAME cura.xml ) diff --git a/LICENSE b/LICENSE index 58777e31af..07b1d92c0e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,661 +1,165 @@ -GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/README.md b/README.md index b843be9a66..f8d809df16 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,11 @@ Dependencies Configuring Cura ---------------- -* Link your CuraEngine backend by inserting the following line in home/.config/cura/config.cfg : +Link your CuraEngine backend by inserting the following lines in `$HOME/.config/cura/config.cfg` : +``` [backend] location = /[path_to_the..]/CuraEngine/build/CuraEngine +``` Build scripts ------------- @@ -50,12 +52,11 @@ Third party plugins * [X3G Writer](https://github.com/Ghostkeeper/X3GWriter): Adds support for exporting X3G files. * [Auto orientation](https://github.com/nallath/CuraOrientationPlugin): Calculate the optimal orientation for a model. * [OctoPrint Plugin](https://github.com/fieldofview/OctoPrintPlugin): Send printjobs directly to OctoPrint and monitor their progress in Cura. -* [WirelessPrinting Plugin](https://github.com/probonopd/WirelessPrinting): Print wirelessly from Cura to your 3D printer connected to an ESP8266 module. * [Electric Print Cost Calculator Plugin](https://github.com/zoff99/ElectricPrintCostCalculator): Calculate the electric costs of a print. Making profiles for other printers ---------------------------------- -There are two ways of doing it. You can either use the generator [here](http://quillford.github.io/CuraProfileMaker/) or you can use [this](https://github.com/Ultimaker/Cura/blob/master/resources/definitions/ultimaker_original.def.json) as a template. +If your make of printer is not in the list of supported printers, and using the "Custom FDM Printer" does not offer enough flexibility, you can use [this](https://github.com/Ultimaker/Cura/blob/master/resources/definitions/ultimaker_original.def.json) as a template. * Change the machine ID to something unique * Change the machine_name to your printer's name @@ -63,12 +64,12 @@ There are two ways of doing it. You can either use the generator [here](http://q * Set your machine's dimensions with machine_width, machine_depth, and machine_height * If your printer's origin is in the center of the bed, set machine_center_is_zero to true. * Set your print head dimensions with the machine_head_shape parameters -* Set the nozzle offset with machine_nozzle_offset_x and machine_nozzle_offset_y * Set the start and end gcode in machine_start_gcode and machine_end_gcode -* If your printer has a heated bed, set visible to true under material_bed_temperature Once you are done, put the profile you have made into resources/definitions, or in definitions in your cura profile folder. +If you want to make a definition for a multi-extrusion printer, have a look at [this](https://github.com/Ultimaker/Cura/blob/master/resources/definitions/ultimaker_original_dual.def.json) as a template, along with the two extruder definitions it references [here](https://github.com/Ultimaker/Cura/blob/master/resources/extruders/ultimaker_original_dual_1st.def.json) and [here](https://github.com/Ultimaker/Cura/blob/master/resources/extruders/ultimaker_original_dual_2nd.def.json) + Translating Cura ---------------- If you'd like to contribute a translation of Cura, please first look for [any existing translation](https://github.com/Ultimaker/Cura/tree/master/resources/i18n). If your language is already there in the source code but not in Cura's interface, it may be partially translated. @@ -89,4 +90,4 @@ To submit your translation, ideally you would make two pull requests where all ` After the translation is submitted, the Cura maintainers will check for its completeness and check whether it is consistent. We will take special care to look for common mistakes, such as translating mark-up `` code and such. We are often not fluent in every language, so we expect the translator and the international users to make corrections where necessary. Of course, there will always be some mistakes in every translation. -When the next Cura release comes around, some of the texts will have changed and some new texts will have been added. Around the time when the beta is released we will invoke a string freeze, meaning that no developer is allowed to make changes to the texts. Then we will update the translation template `.pot` files and ask all our translators to update their translations. If you are unable to update the translation in time for the actual release, we will remove the language from the drop-down menu in the Preferences window. The translation stays in Cura however, so that someone might pick it up again later and update it with the newest texts. Also, users who had previously selected the language can still continue Cura in their language but English text will appear among the original text. \ No newline at end of file +When the next Cura release comes around, some of the texts will have changed and some new texts will have been added. Around the time when the beta is released we will invoke a string freeze, meaning that no developer is allowed to make changes to the texts. Then we will update the translation template `.pot` files and ask all our translators to update their translations. If you are unable to update the translation in time for the actual release, we will remove the language from the drop-down menu in the Preferences window. The translation stays in Cura however, so that someone might pick it up again later and update it with the newest texts. Also, users who had previously selected the language can still continue Cura in their language but English text will appear among the original text. diff --git a/cmake/CuraTests.cmake b/cmake/CuraTests.cmake index eca96257cc..a8af16c28c 100644 --- a/cmake/CuraTests.cmake +++ b/cmake/CuraTests.cmake @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. enable_testing() include(CMakeParseArguments) diff --git a/cura.desktop.in b/cura.desktop.in index 1f6d295dd2..778e1d5033 100644 --- a/cura.desktop.in +++ b/cura.desktop.in @@ -7,9 +7,9 @@ Comment=Cura converts 3D models into paths for a 3D printer. It prepares your pr Comment[de]=Cura wandelt 3D-Modelle in Pfade für einen 3D-Drucker um. Es bereitet Ihren Druck für maximale Genauigkeit, minimale Druckzeit und guter Zuverlässigkeit mit vielen zusätzlichen Funktionen vor, damit Ihr Druck großartig wird. Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura -Icon=@CMAKE_INSTALL_FULL_DATADIR@/cura/resources/images/cura-icon.png +Icon=cura-icon Terminal=false Type=Application -MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png +MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml; Categories=Graphics; Keywords=3D;Printing; diff --git a/cura/ArrangeObjectsJob.py b/cura/ArrangeObjectsJob.py index 3158fcc887..d650fd7f57 100755 --- a/cura/ArrangeObjectsJob.py +++ b/cura/ArrangeObjectsJob.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Job import Job from UM.Scene.SceneNode import SceneNode @@ -27,7 +27,11 @@ class ArrangeObjectsJob(Job): self._min_offset = min_offset def run(self): - status_message = Message(i18n_catalog.i18nc("@info:status", "Finding new location for objects"), lifetime = 0, dismissable=False, progress = 0) + status_message = Message(i18n_catalog.i18nc("@info:status", "Finding new location for objects"), + lifetime = 0, + dismissable=False, + progress = 0, + title = i18n_catalog.i18nc("@info:title", "Finding Location")) status_message.show() arranger = Arrange.create(fixed_nodes = self._fixed_nodes) @@ -82,5 +86,6 @@ class ArrangeObjectsJob(Job): status_message.hide() if not found_solution_for_all: - no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects")) + no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects"), + title = i18n_catalog.i18nc("@info:title", "Can't Find Location")) no_full_solution_message.show() diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index e37268e244..e87bfebd94 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -1,5 +1,5 @@ -# Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. from cura.Settings.ExtruderManager import ExtruderManager from UM.Settings.ContainerRegistry import ContainerRegistry @@ -86,29 +86,38 @@ class BuildVolume(SceneNode): #Objects loaded at the moment. We are connected to the property changed events of these objects. self._scene_objects = set() - self._change_timer = QTimer() - self._change_timer.setInterval(100) - self._change_timer.setSingleShot(True) - self._change_timer.timeout.connect(self._onChangeTimerFinished) + self._scene_change_timer = QTimer() + self._scene_change_timer.setInterval(100) + self._scene_change_timer.setSingleShot(True) + self._scene_change_timer.timeout.connect(self._onSceneChangeTimerFinished) + + self._setting_change_timer = QTimer() + self._setting_change_timer.setInterval(150) + self._setting_change_timer.setSingleShot(True) + self._setting_change_timer.timeout.connect(self._onSettingChangeTimerFinished) self._build_volume_message = Message(catalog.i18nc("@info:status", "The build volume height has been reduced due to the value of the" " \"Print Sequence\" setting to prevent the gantry from colliding" - " with printed models.")) + " with printed models."), title = catalog.i18nc("@info:title","Build Volume")) # Must be after setting _build_volume_message, apparently that is used in getMachineManager. # activeQualityChanged is always emitted after setActiveVariant, setActiveMaterial and setActiveQuality. # Therefore this works. Application.getInstance().getMachineManager().activeQualityChanged.connect(self._onStackChanged) + # This should also ways work, and it is semantically more correct, # but it does not update the disallowed areas after material change Application.getInstance().getMachineManager().activeStackChanged.connect(self._onStackChanged) + # list of settings which were updated + self._changed_settings_since_last_rebuild = [] + def _onSceneChanged(self, source): if self._global_container_stack: - self._change_timer.start() + self._scene_change_timer.start() - def _onChangeTimerFinished(self): + def _onSceneChangeTimerFinished(self): root = Application.getInstance().getController().getScene().getRoot() new_scene_objects = set(node for node in BreadthFirstIterator(root) if node.callDecoration("isSliceable")) if new_scene_objects != self._scene_objects: @@ -169,8 +178,9 @@ class BuildVolume(SceneNode): self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "default.shader")) self._grid_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "grid.shader")) theme = Application.getInstance().getTheme() - self._grid_shader.setUniformValue("u_gridColor0", Color(*theme.getColor("buildplate").getRgb())) - self._grid_shader.setUniformValue("u_gridColor1", Color(*theme.getColor("buildplate_alt").getRgb())) + self._grid_shader.setUniformValue("u_plateColor", Color(*theme.getColor("buildplate").getRgb())) + self._grid_shader.setUniformValue("u_gridColor0", Color(*theme.getColor("buildplate_grid").getRgb())) + self._grid_shader.setUniformValue("u_gridColor1", Color(*theme.getColor("buildplate_grid_minor").getRgb())) renderer.queueNode(self, mode = RenderBatch.RenderMode.Lines) renderer.queueNode(self, mesh = self._origin_mesh) @@ -498,42 +508,67 @@ class BuildVolume(SceneNode): self._engine_ready = True self.rebuild() + def _onSettingChangeTimerFinished(self): + rebuild_me = False + update_disallowed_areas = False + update_raft_thickness = False + update_extra_z_clearance = True + for setting_key in self._changed_settings_since_last_rebuild: + if setting_key == "print_sequence": + machine_height = self._global_container_stack.getProperty("machine_height", "value") + if Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", + "value") == "one_at_a_time" and len( + self._scene_objects) > 1: + self._height = min(self._global_container_stack.getProperty("gantry_height", "value"), + machine_height) + if self._height < machine_height: + self._build_volume_message.show() + else: + self._build_volume_message.hide() + else: + self._height = self._global_container_stack.getProperty("machine_height", "value") + self._build_volume_message.hide() + rebuild_me = True + + if setting_key in self._skirt_settings or setting_key in self._prime_settings or setting_key in self._tower_settings or setting_key == "print_sequence" or setting_key in self._ooze_shield_settings or setting_key in self._distance_settings or setting_key in self._extruder_settings: + update_disallowed_areas = True + rebuild_me = True + + if setting_key in self._raft_settings: + update_raft_thickness = True + rebuild_me = True + + if setting_key in self._extra_z_settings: + update_extra_z_clearance = True + rebuild_me = True + + if setting_key in self._limit_to_extruder_settings: + update_disallowed_areas = True + rebuild_me = True + + # We only want to update all of them once. + if update_disallowed_areas: + self._updateDisallowedAreas() + + if update_raft_thickness: + self._updateRaftThickness() + + if update_extra_z_clearance: + self._updateExtraZClearance() + + if rebuild_me: + self.rebuild() + + # We just did a rebuild, reset the list. + self._changed_settings_since_last_rebuild = [] + def _onSettingPropertyChanged(self, setting_key: str, property_name: str): if property_name != "value": return - rebuild_me = False - if setting_key == "print_sequence": - machine_height = self._global_container_stack.getProperty("machine_height", "value") - if Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") == "one_at_a_time" and len(self._scene_objects) > 1: - self._height = min(self._global_container_stack.getProperty("gantry_height", "value"), machine_height) - if self._height < machine_height: - self._build_volume_message.show() - else: - self._build_volume_message.hide() - else: - self._height = self._global_container_stack.getProperty("machine_height", "value") - self._build_volume_message.hide() - rebuild_me = True - - if setting_key in self._skirt_settings or setting_key in self._prime_settings or setting_key in self._tower_settings or setting_key == "print_sequence" or setting_key in self._ooze_shield_settings or setting_key in self._distance_settings or setting_key in self._extruder_settings: - self._updateDisallowedAreas() - rebuild_me = True - - if setting_key in self._raft_settings: - self._updateRaftThickness() - rebuild_me = True - - if setting_key in self._extra_z_settings: - self._updateExtraZClearance() - rebuild_me = True - - if setting_key in self._limit_to_extruder_settings: - self._updateDisallowedAreas() - rebuild_me = True - - if rebuild_me: - self.rebuild() + if setting_key not in self._changed_settings_since_last_rebuild: + self._changed_settings_since_last_rebuild.append(setting_key) + self._setting_change_timer.start() def hasErrors(self) -> bool: return self._has_errors @@ -921,14 +956,14 @@ class BuildVolume(SceneNode): if adhesion_type == "skirt": skirt_distance = self._getSettingFromAdhesionExtruder("skirt_gap") skirt_line_count = self._getSettingFromAdhesionExtruder("skirt_line_count") - bed_adhesion_size = skirt_distance + (skirt_line_count * self._getSettingFromAdhesionExtruder("skirt_brim_line_width")) * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 + bed_adhesion_size = skirt_distance + (self._getSettingFromAdhesionExtruder("skirt_brim_line_width") * skirt_line_count) * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 if len(used_extruders) > 1: for extruder_stack in used_extruders: bed_adhesion_size += extruder_stack.getProperty("skirt_brim_line_width", "value") * extruder_stack.getProperty("initial_layer_line_width_factor", "value") / 100.0 #We don't create an additional line for the extruder we're printing the skirt with. bed_adhesion_size -= self._getSettingFromAdhesionExtruder("skirt_brim_line_width", "value") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor", "value") / 100.0 elif adhesion_type == "brim": - bed_adhesion_size = self._getSettingFromAdhesionExtruder("brim_line_count") * self._getSettingFromAdhesionExtruder("skirt_brim_line_width") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 + bed_adhesion_size = self._getSettingFromAdhesionExtruder("skirt_brim_line_width") * self._getSettingFromAdhesionExtruder("brim_line_count") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 if self._global_container_stack.getProperty("machine_extruder_count", "value") > 1: for extruder_stack in used_extruders: bed_adhesion_size += extruder_stack.getProperty("skirt_brim_line_width", "value") * extruder_stack.getProperty("initial_layer_line_width_factor", "value") / 100.0 diff --git a/cura/CameraAnimation.py b/cura/CameraAnimation.py index c6051c58d1..37f230a30d 100644 --- a/cura/CameraAnimation.py +++ b/cura/CameraAnimation.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QVariantAnimation, QEasingCurve @@ -12,8 +12,8 @@ class CameraAnimation(QVariantAnimation): def __init__(self, parent = None): super().__init__(parent) self._camera_tool = None - self.setDuration(500) - self.setEasingCurve(QEasingCurve.InOutQuad) + self.setDuration(300) + self.setEasingCurve(QEasingCurve.OutQuad) def setCameraTool(self, camera_tool): self._camera_tool = camera_tool diff --git a/cura/ConvexHullDecorator.py b/cura/ConvexHullDecorator.py index 70f77d9712..bfeb690192 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/ConvexHullDecorator.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from UM.Math.Polygon import Polygon @@ -266,7 +266,7 @@ class ConvexHullDecorator(SceneNodeDecorator): if self._getSettingProperty("mold_enabled", "value"): mold_width = self._getSettingProperty("mold_width", "value") hull_offset = horizontal_expansion + mold_width - if hull_offset != 0: + if hull_offset > 0: #TODO: Implement Minkowski subtraction for if the offset < 0. expansion_polygon = Polygon(numpy.array([ [-hull_offset, -hull_offset], [-hull_offset, hull_offset], diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index 84becd0da3..cc4720c197 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from UM.Scene.SceneNode import SceneNode diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 7008ba64d2..c6f94f0a80 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -1,18 +1,28 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + import sys import platform import traceback -import webbrowser import faulthandler import tempfile import os -import urllib +import os.path +import time +import json +import ssl +import urllib.request +import urllib.error -from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, Qt, QCoreApplication -from PyQt5.QtGui import QPixmap -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QHBoxLayout, QVBoxLayout, QLabel, QTextEdit +from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox +from UM.Application import Application from UM.Logger import Logger +from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog +from UM.Platform import Platform + catalog = i18nCatalog("cura") MYPY = False @@ -35,83 +45,240 @@ fatal_exception_types = [ SystemError, ] -def show(exception_type, value, tb): - Logger.log("c", "An uncaught exception has occurred!") - for line in traceback.format_exception(exception_type, value, tb): - for part in line.rstrip("\n").split("\n"): - Logger.log("c", part) - if not CuraDebugMode and exception_type not in fatal_exception_types: - return +class CrashHandler: + crash_url = "https://stats.ultimaker.com/api/cura" - application = QCoreApplication.instance() - if not application: - sys.exit(1) + def __init__(self, exception_type, value, tb): + self.exception_type = exception_type + self.value = value + self.traceback = tb + self.dialog = QDialog() - dialog = QDialog() - dialog.setMinimumWidth(640) - dialog.setMinimumHeight(640) - dialog.setWindowTitle(catalog.i18nc("@title:window", "Crash Report")) + # While we create the GUI, the information will be stored for sending afterwards + self.data = dict() + self.data["time_stamp"] = time.time() - layout = QVBoxLayout(dialog) + Logger.log("c", "An uncaught exception has occurred!") + for line in traceback.format_exception(exception_type, value, tb): + for part in line.rstrip("\n").split("\n"): + Logger.log("c", part) - #label = QLabel(dialog) - #pixmap = QPixmap() - #try: - # data = urllib.request.urlopen("http://www.randomkittengenerator.com/cats/rotator.php").read() - # pixmap.loadFromData(data) - #except: - # try: - # from UM.Resources import Resources - # path = Resources.getPath(Resources.Images, "kitten.jpg") - # pixmap.load(path) - # except: - # pass - #pixmap = pixmap.scaled(150, 150) - #label.setPixmap(pixmap) - #label.setAlignment(Qt.AlignCenter) - #layout.addWidget(label) + if not CuraDebugMode and exception_type not in fatal_exception_types: + return - label = QLabel(dialog) - layout.addWidget(label) + application = QCoreApplication.instance() + if not application: + sys.exit(1) - #label.setScaledContents(True) - label.setText(catalog.i18nc("@label", """

A fatal exception has occurred that we could not recover from!

-

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

- """)) + self._createDialog() - textarea = QTextEdit(dialog) - layout.addWidget(textarea) + ## Creates a modal dialog. + def _createDialog(self): + self.dialog.setMinimumWidth(640) + self.dialog.setMinimumHeight(640) + self.dialog.setWindowTitle(catalog.i18nc("@title:window", "Crash Report")) - try: - from UM.Application import Application - version = Application.getInstance().getVersion() - except: - version = "Unknown" + layout = QVBoxLayout(self.dialog) - trace = "".join(traceback.format_exception(exception_type, value, tb)) + layout.addWidget(self._messageWidget()) + layout.addWidget(self._informationWidget()) + layout.addWidget(self._exceptionInfoWidget()) + layout.addWidget(self._logInfoWidget()) + layout.addWidget(self._userDescriptionWidget()) + layout.addWidget(self._buttonsWidget()) - crash_info = "Version: {0}\nPlatform: {1}\nQt: {2}\nPyQt: {3}\n\nException:\n{4}" - crash_info = crash_info.format(version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, trace) + def _messageWidget(self): + label = QLabel() + label.setText(catalog.i18nc("@label crash message", """

A fatal exception has occurred. Please send us this Crash Report to fix the problem

+

Please use the "Send report" button to post a bug report automatically to our servers

+ """)) - tmp_file_fd, tmp_file_path = tempfile.mkstemp(prefix = "cura-crash", text = True) - os.close(tmp_file_fd) - with open(tmp_file_path, "w") as f: - faulthandler.dump_traceback(f, all_threads=True) - with open(tmp_file_path, "r") as f: - data = f.read() + return label - msg = "-------------------------\n" - msg += data - crash_info += "\n\n" + msg + def _informationWidget(self): + group = QGroupBox() + group.setTitle(catalog.i18nc("@title:groupbox", "System information")) + layout = QVBoxLayout() + label = QLabel() - textarea.setText(crash_info) + try: + from UM.Application import Application + self.cura_version = Application.getInstance().getVersion() + except: + self.cura_version = catalog.i18nc("@label unknown version of Cura", "Unknown") - buttons = QDialogButtonBox(QDialogButtonBox.Close, dialog) - layout.addWidget(buttons) - buttons.addButton(catalog.i18nc("@action:button", "Open Web Page"), QDialogButtonBox.HelpRole) - buttons.rejected.connect(dialog.close) - buttons.helpRequested.connect(lambda: webbrowser.open("http://github.com/Ultimaker/Cura/issues")) + crash_info = catalog.i18nc("@label Cura version", "Cura version: {version}
").format(version = self.cura_version) + crash_info += catalog.i18nc("@label Platform", "Platform: {platform}
").format(platform = platform.platform()) + crash_info += catalog.i18nc("@label Qt version", "Qt version: {qt}
").format(qt = QT_VERSION_STR) + crash_info += catalog.i18nc("@label PyQt version", "PyQt version: {pyqt}
").format(pyqt = PYQT_VERSION_STR) + crash_info += catalog.i18nc("@label OpenGL", "OpenGL: {opengl}
").format(opengl = self._getOpenGLInfo()) + label.setText(crash_info) - dialog.exec_() - sys.exit(1) + layout.addWidget(label) + group.setLayout(layout) + + self.data["cura_version"] = self.cura_version + self.data["os"] = {"type": platform.system(), "version": platform.version()} + self.data["qt_version"] = QT_VERSION_STR + self.data["pyqt_version"] = PYQT_VERSION_STR + + return group + + def _getOpenGLInfo(self): + info = "
    " + info += catalog.i18nc("@label OpenGL version", "
  • OpenGL Version: {version}
  • ").format(version = OpenGL.getInstance().getOpenGLVersion()) + info += catalog.i18nc("@label OpenGL vendor", "
  • OpenGL Vendor: {vendor}
  • ").format(vendor = OpenGL.getInstance().getGPUVendorName()) + info += catalog.i18nc("@label OpenGL renderer", "
  • OpenGL Renderer: {renderer}
  • ").format(renderer = OpenGL.getInstance().getGPUType()) + info += "
" + + self.data["opengl"] = {"version": OpenGL.getInstance().getOpenGLVersion(), "vendor": OpenGL.getInstance().getGPUVendorName(), "type": OpenGL.getInstance().getGPUType()} + + return info + + def _exceptionInfoWidget(self): + group = QGroupBox() + group.setTitle(catalog.i18nc("@title:groupbox", "Exception traceback")) + layout = QVBoxLayout() + + text_area = QTextEdit() + trace_dict = traceback.format_exception(self.exception_type, self.value, self.traceback) + trace = "".join(trace_dict) + text_area.setText(trace) + text_area.setReadOnly(True) + + layout.addWidget(text_area) + group.setLayout(layout) + + # Parsing all the information to fill the dictionary + summary = trace_dict[len(trace_dict)-1].rstrip("\n") + module = trace_dict[len(trace_dict)-2].rstrip("\n").split("\n") + module_split = module[0].split(", ") + filepath = module_split[0].split("\"")[1] + directory, filename = os.path.split(filepath) + line = int(module_split[1].lstrip("line ")) + function = module_split[2].lstrip("in ") + code = module[1].lstrip(" ") + + # Using this workaround for a cross-platform path splitting + split_path = [] + folder_name = "" + # Split until reach folder "cura" + while folder_name != "cura": + directory, folder_name = os.path.split(directory) + if not folder_name: + break + split_path.append(folder_name) + + # Look for plugins. If it's not a plugin, the current cura version is set + isPlugin = False + module_version = self.cura_version + module_name = "Cura" + if split_path.__contains__("plugins"): + isPlugin = True + # Look backwards until plugin.json is found + directory, name = os.path.split(filepath) + while not os.listdir(directory).__contains__("plugin.json"): + directory, name = os.path.split(directory) + + json_metadata_file = os.path.join(directory, "plugin.json") + try: + with open(json_metadata_file, "r") as f: + try: + metadata = json.loads(f.read()) + module_version = metadata["version"] + module_name = metadata["name"] + except json.decoder.JSONDecodeError: + # Not throw new exceptions + Logger.logException("e", "Failed to parse plugin.json for plugin %s", name) + except: + # Not throw new exceptions + pass + + exception_dict = dict() + exception_dict["traceback"] = {"summary": summary, "full_trace": trace} + exception_dict["location"] = {"path": filepath, "file": filename, "function": function, "code": code, "line": line, + "module_name": module_name, "version": module_version, "is_plugin": isPlugin} + self.data["exception"] = exception_dict + + return group + + def _logInfoWidget(self): + group = QGroupBox() + group.setTitle(catalog.i18nc("@title:groupbox", "Logs")) + layout = QVBoxLayout() + + text_area = QTextEdit() + tmp_file_fd, tmp_file_path = tempfile.mkstemp(prefix = "cura-crash", text = True) + os.close(tmp_file_fd) + with open(tmp_file_path, "w") as f: + faulthandler.dump_traceback(f, all_threads=True) + with open(tmp_file_path, "r") as f: + logdata = f.read() + + text_area.setText(logdata) + text_area.setReadOnly(True) + + layout.addWidget(text_area) + group.setLayout(layout) + + self.data["log"] = logdata + + return group + + def _userDescriptionWidget(self): + group = QGroupBox() + group.setTitle(catalog.i18nc("@title:groupbox", "User description")) + layout = QVBoxLayout() + + # When sending the report, the user comments will be collected + self.user_description_text_area = QTextEdit() + self.user_description_text_area.setFocus(True) + + layout.addWidget(self.user_description_text_area) + group.setLayout(layout) + + return group + + def _buttonsWidget(self): + buttons = QDialogButtonBox() + buttons.addButton(QDialogButtonBox.Close) + buttons.addButton(catalog.i18nc("@action:button", "Send report"), QDialogButtonBox.AcceptRole) + buttons.rejected.connect(self.dialog.close) + buttons.accepted.connect(self._sendCrashReport) + + return buttons + + def _sendCrashReport(self): + # Before sending data, the user comments are stored + self.data["user_info"] = self.user_description_text_area.toPlainText() + + # Convert data to bytes + binary_data = json.dumps(self.data).encode("utf-8") + + # Submit data + kwoptions = {"data": binary_data, "timeout": 5} + + if Platform.isOSX(): + kwoptions["context"] = ssl._create_unverified_context() + + Logger.log("i", "Sending crash report info to [%s]...", self.crash_url) + + try: + f = urllib.request.urlopen(self.crash_url, **kwoptions) + Logger.log("i", "Sent crash report info.") + f.close() + except urllib.error.HTTPError: + Logger.logException("e", "An HTTP error occurred while trying to send crash report") + except Exception: # We don't want any exception to cause problems + Logger.logException("e", "An exception occurred while trying to send crash report") + + os._exit(1) + + def show(self): + # must run the GUI code on the Qt thread, otherwise the widgets on the dialog won't react correctly. + Application.getInstance().callLater(self._show) + + def _show(self): + self.dialog.exec_() + os._exit(1) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index eeebd3b6b2..b51728f028 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, QUrl from PyQt5.QtGui import QDesktopServices @@ -36,6 +36,15 @@ class CuraActions(QObject): event = CallFunctionEvent(self._openUrl, [QUrl("http://github.com/Ultimaker/Cura/issues")], {}) Application.getInstance().functionEvent(event) + ## Reset camera position and direction to default + @pyqtSlot() + def homeCamera(self) -> None: + scene = Application.getInstance().getController().getScene() + camera = scene.getActiveCamera() + camera.setPosition(Vector(-80, 250, 700)) + camera.setPerspective(True) + camera.lookAt(Vector(0, 0, 0)) + ## Center all objects in the selection @pyqtSlot() def centerSelection(self) -> None: diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 96b2f4b01c..96ca15741e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtNetwork import QLocalServer from PyQt5.QtNetwork import QLocalSocket @@ -51,6 +51,7 @@ from cura.Settings.MaterialsModel import MaterialsModel from cura.Settings.QualityAndUserProfilesModel import QualityAndUserProfilesModel from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel +from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager from . import PlatformPhysics from . import BuildVolume @@ -104,7 +105,7 @@ class CuraApplication(QtApplication): # SettingVersion represents the set of settings available in the machine/extruder definitions. # You need to make sure that this version number needs to be increased if there is any non-backwards-compatible # changes of the settings. - SettingVersion = 2 + SettingVersion = 4 class ResourceTypes: QmlFiles = Resources.UserType + 1 @@ -125,6 +126,8 @@ class CuraApplication(QtApplication): # Cura will always show the Add Machine Dialog upon start. stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished + projectFileLoaded = pyqtSignal(str) # Emitted whenever a project file is loaded + def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: @@ -199,16 +202,21 @@ class CuraApplication(QtApplication): self._machine_manager = None # This is initialized on demand. self._material_manager = None self._setting_inheritance_manager = None + self._simple_mode_settings_manager = None self._additional_components = {} # Components to add to certain areas in the interface - super().__init__(name = "cura", version = CuraVersion, buildtype = CuraBuildType) + super().__init__(name = "cura", version = CuraVersion, buildtype = CuraBuildType, + tray_icon_name = "cura-icon-32.png") + + self.default_theme = "cura-light" self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png"))) self.setRequiredPlugins([ "CuraEngineBackend", - "MeshView", + "UserAgreement", + "SolidView", "LayerView", "STLReader", "SelectionTool", @@ -217,7 +225,8 @@ class CuraApplication(QtApplication): "LocalFileOutputDevice", "TranslateTool", "FileLogger", - "XmlMaterialProfile" + "XmlMaterialProfile", + "PluginBrowser" ]) self._physics = None self._volume = None @@ -262,8 +271,9 @@ class CuraApplication(QtApplication): empty_quality_container = copy.deepcopy(empty_container) empty_quality_container._id = "empty_quality" empty_quality_container.setName("Not Supported") - empty_quality_container.addMetaDataEntry("quality_type", "normal") + empty_quality_container.addMetaDataEntry("quality_type", "not_supported") empty_quality_container.addMetaDataEntry("type", "quality") + empty_quality_container.addMetaDataEntry("supported", False) ContainerRegistry.getInstance().addContainer(empty_quality_container) empty_quality_changes_container = copy.deepcopy(empty_container) empty_quality_changes_container._id = "empty_quality_changes" @@ -295,6 +305,8 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) + self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") + for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin "dialog_profile_path", @@ -367,6 +379,14 @@ class CuraApplication(QtApplication): def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) + @pyqtProperty(bool) + def needToShowUserAgreement(self): + return self._need_to_show_user_agreement + + + def setNeedToShowUserAgreement(self, set_value = True): + self._need_to_show_user_agreement = set_value + ## The "Quit" button click event handler. @pyqtSlot() def closeApplication(self): @@ -385,6 +405,7 @@ class CuraApplication(QtApplication): showDiscardOrKeepProfileChanges = pyqtSignal() def discardOrKeepProfileChanges(self): + has_user_interaction = False choice = Preferences.getInstance().getValue("cura/choice_on_profile_override") if choice == "always_discard": # don't show dialog and DISCARD the profile @@ -395,6 +416,10 @@ class CuraApplication(QtApplication): else: # ALWAYS ask whether to keep or discard the profile self.showDiscardOrKeepProfileChanges.emit() + has_user_interaction = True + return has_user_interaction + + onDiscardOrKeepProfileChangesClosed = pyqtSignal() # Used to notify other managers that the dialog was closed @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): @@ -402,9 +427,25 @@ class CuraApplication(QtApplication): global_stack = self.getGlobalContainerStack() for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): extruder.getTop().clear() - global_stack.getTop().clear() + # if the user decided to keep settings then the user settings should be re-calculated and validated for errors + # before slicing. To ensure that slicer uses right settings values + elif option == "keep": + global_stack = self.getGlobalContainerStack() + for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + user_extruder_container = extruder.getTop() + if user_extruder_container: + user_extruder_container.update() + + user_global_container = global_stack.getTop() + if user_global_container: + user_global_container.update() + + # notify listeners that quality has changed (after user selected discard or keep) + self.onDiscardOrKeepProfileChangesClosed.emit() + self.getMachineManager().activeQualityChanged.emit() + @pyqtSlot(int) def messageBoxClosed(self, button): if self._message_box_callback: @@ -521,6 +562,7 @@ class CuraApplication(QtApplication): super().addCommandLineOptions(parser) parser.add_argument("file", nargs="*", help="Files to load after starting the application.") parser.add_argument("--single-instance", action="store_true", default=False) + parser.add_argument("--headless", action = "store_true", default=False) # Set up a local socket server which listener which coordinates single instances Curas and accepts commands. def _setUpSingleInstanceServer(self): @@ -662,18 +704,23 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, "MachineManager", self.getMachineManager) qmlRegisterSingletonType(MaterialManager, "Cura", 1, 0, "MaterialManager", self.getMaterialManager) qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, "SettingInheritanceManager", - self.getSettingInheritanceManager) + self.getSettingInheritanceManager) + qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 2, "SimpleModeSettingsManager", + self.getSimpleModeSettingsManager) qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) self._qml_import_paths.append(Resources.getPath(self.ResourceTypes.QmlFiles)) - self.initializeEngine() - if self._engine.rootObjects: + run_headless = self.getCommandLineOption("headless", False) + if not run_headless: + self.initializeEngine() + + if run_headless or self._engine.rootObjects: self.closeSplash() - for file in self.getCommandLineOption("file", []): - self._openFile(file) + for file_name in self.getCommandLineOption("file", []): + self._openFile(file_name) for file_name in self._open_file_queue: #Open all the files that were queued up while plug-ins were loading. self._openFile(file_name) @@ -702,6 +749,11 @@ class CuraApplication(QtApplication): def getMachineActionManager(self, *args): return self._machine_action_manager + def getSimpleModeSettingsManager(self, *args): + if self._simple_mode_settings_manager is None: + self._simple_mode_settings_manager = SimpleModeSettingsManager() + return self._simple_mode_settings_manager + ## Handle Qt events def event(self, event): if event.type() == QEvent.FileOpen: @@ -1179,6 +1231,7 @@ class CuraApplication(QtApplication): group_node = SceneNode() group_decorator = GroupDecorator() group_node.addDecorator(group_decorator) + group_node.addDecorator(ConvexHullDecorator()) group_node.setParent(self.getController().getScene().getRoot()) group_node.setSelectable(True) center = Selection.getSelectionCenter() @@ -1214,6 +1267,9 @@ class CuraApplication(QtApplication): # see GroupDecorator._onChildrenChanged def _createSplashScreen(self): + run_headless = self.getCommandLineOption("headless", False) + if run_headless: + return None return CuraSplashScreen.CuraSplashScreen() def _onActiveMachineChanged(self): @@ -1289,7 +1345,7 @@ class CuraApplication(QtApplication): message = Message( self._i18n_catalog.i18nc("@info:status", "Only one G-code file can be loaded at a time. Skipped importing {0}", - filename)) + filename), title = self._i18n_catalog.i18nc("@info:title", "Warning")) message.show() return # If file being loaded is non-slicable file, then prevent loading of any other files @@ -1298,7 +1354,7 @@ class CuraApplication(QtApplication): message = Message( self._i18n_catalog.i18nc("@info:status", "Can't open any other file if G-code is loading. Skipped importing {0}", - filename)) + filename), title = self._i18n_catalog.i18nc("@info:title", "Error")) message.show() return @@ -1354,6 +1410,12 @@ class CuraApplication(QtApplication): # Find node location offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = min_offset) + # If a model is to small then it will not contain any points + if offset_shape_arr is None and hull_shape_arr is None: + Message(self._i18n_catalog.i18nc("@info:status", "The selected model was too small to load."), + title=self._i18n_catalog.i18nc("@info:title", "Warning")).show() + return + # Step is for skipping tests to make it a lot faster. it also makes the outcome somewhat rougher node, _ = arranger.findNodePlacement(node, offset_shape_arr, hull_shape_arr, step = 10) diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index 1df2c39da7..77c9ad1427 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -1,38 +1,106 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Uranium is released under the terms of the LGPLv3 or higher. -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtGui import QPixmap, QColor, QFont, QFontMetrics +from PyQt5.QtCore import Qt, QCoreApplication, QTimer +from PyQt5.QtGui import QPixmap, QColor, QFont, QPen, QPainter from PyQt5.QtWidgets import QSplashScreen from UM.Resources import Resources from UM.Application import Application + class CuraSplashScreen(QSplashScreen): def __init__(self): super().__init__() - self._scale = round(QFontMetrics(QCoreApplication.instance().font()).ascent() / 12) + self._scale = 0.7 splash_image = QPixmap(Resources.getPath(Resources.Images, "cura.png")) - self.setPixmap(splash_image.scaled(splash_image.size() * self._scale)) + self.setPixmap(splash_image) + + self._current_message = "" + + self._loading_image_rotation_angle = 0 + + self._to_stop = False + self._change_timer = QTimer() + self._change_timer.setInterval(50) + self._change_timer.setSingleShot(False) + self._change_timer.timeout.connect(self.updateLoadingImage) + + def show(self): + super().show() + self._change_timer.start() + + def updateLoadingImage(self): + if self._to_stop: + return + + self._loading_image_rotation_angle -= 10 + self.repaint() + + # Override the mousePressEvent so the splashscreen doesn't disappear when clicked + def mousePressEvent(self, mouse_event): + pass def drawContents(self, painter): + if self._to_stop: + return + painter.save() - painter.setPen(QColor(0, 0, 0, 255)) + painter.setPen(QColor(255, 255, 255, 255)) + painter.setRenderHint(QPainter.Antialiasing) + painter.setRenderHint(QPainter.Antialiasing, True) version = Application.getInstance().getVersion().split("-") buildtype = Application.getInstance().getBuildType() if buildtype: - version[0] += " (%s)" %(buildtype) + version[0] += " (%s)" % buildtype - font = QFont() # Using system-default font here - font.setPointSize(20) + # draw version text + font = QFont() # Using system-default font here + font.setPixelSize(37) painter.setFont(font) - painter.drawText(0, 0, 330 * self._scale, 230 * self._scale, Qt.AlignHCenter | Qt.AlignBottom, version[0]) + painter.drawText(215, 66, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) if len(version) > 1: - font.setPointSize(12) + font.setPixelSize(16) painter.setFont(font) - painter.drawText(0, 0, 330 * self._scale, 255 * self._scale, Qt.AlignHCenter | Qt.AlignBottom, version[1]) + painter.setPen(QColor(200, 200, 200, 255)) + painter.drawText(247, 105, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) + painter.setPen(QColor(255, 255, 255, 255)) + + # draw the loading image + pen = QPen() + pen.setWidth(6 * self._scale) + pen.setColor(QColor(32, 166, 219, 255)) + painter.setPen(pen) + painter.drawArc(60, 150, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) + + # draw message text + if self._current_message: + font = QFont() # Using system-default font here + font.setPixelSize(13) + pen = QPen() + pen.setColor(QColor(255, 255, 255, 255)) + painter.setPen(pen) + painter.setFont(font) + painter.drawText(100, 128, 170, 64, + Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap, + self._current_message) painter.restore() super().drawContents(painter) + + def showMessage(self, message, *args, **kwargs): + if self._to_stop: + return + + self._current_message = message + self.messageChanged.emit(message) + QCoreApplication.flush() + self.repaint() + + def close(self): + # set stop flags + self._to_stop = True + self._change_timer.stop() + super().close() diff --git a/cura/CuraVersion.py.in b/cura/CuraVersion.py.in index fb66275395..c489485c2c 100644 --- a/cura/CuraVersion.py.in +++ b/cura/CuraVersion.py.in @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. CuraVersion = "@CURA_VERSION@" CuraBuildType = "@CURA_BUILDTYPE@" diff --git a/cura/LayerData.py b/cura/LayerData.py index 03dc6da45f..796e71cbdc 100644 --- a/cura/LayerData.py +++ b/cura/LayerData.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Mesh.MeshData import MeshData diff --git a/cura/LayerDataBuilder.py b/cura/LayerDataBuilder.py index a5da57d42b..6e50611e64 100755 --- a/cura/LayerDataBuilder.py +++ b/cura/LayerDataBuilder.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from .Layer import Layer from .LayerPolygon import LayerPolygon diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index d6ab854169..7f41351b7f 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from typing import Any diff --git a/cura/MachineAction.py b/cura/MachineAction.py index c4553bc1e4..bc7b17af85 100644 --- a/cura/MachineAction.py +++ b/cura/MachineAction.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal, QUrl from PyQt5.QtQml import QQmlComponent, QQmlContext diff --git a/cura/MachineActionManager.py b/cura/MachineActionManager.py index ad9c91ec46..27b08ba8a1 100644 --- a/cura/MachineActionManager.py +++ b/cura/MachineActionManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Logger import Logger from UM.PluginRegistry import PluginRegistry # So MachineAction can be added as plugin type diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py index a795e0bc10..721c0e4c07 100644 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Job import Job from UM.Scene.SceneNode import SceneNode @@ -32,7 +32,7 @@ class MultiplyObjectsJob(Job): def run(self): status_message = Message(i18n_catalog.i18nc("@info:status", "Multiplying and placing objects"), lifetime=0, - dismissable=False, progress=0) + dismissable=False, progress=0, title = i18n_catalog.i18nc("@info:title", "Placing Object")) status_message.show() scene = Application.getInstance().getController().getScene() @@ -80,5 +80,5 @@ class MultiplyObjectsJob(Job): status_message.hide() if not found_solution_for_all: - no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects")) + no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects"), title = i18n_catalog.i18nc("@info:title", "Placing Object")) no_full_solution_message.show() diff --git a/cura/OneAtATimeIterator.py b/cura/OneAtATimeIterator.py index b700fe83b3..44f8d2766a 100644 --- a/cura/OneAtATimeIterator.py +++ b/cura/OneAtATimeIterator.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Scene.Iterator import Iterator from UM.Scene.SceneNode import SceneNode diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index b00c5a632c..23197dac24 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QTimer @@ -41,7 +41,7 @@ class PlatformPhysics: def _onSceneChanged(self, source): self._change_timer.start() - def _onChangeTimerFinished(self): + def _onChangeTimerFinished(self, was_triggered_by_tool=False): if not self._enabled: return @@ -67,6 +67,7 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() + if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y=-bbox.bottom + z_offset) @@ -159,4 +160,4 @@ class PlatformPhysics: node.removeDecorator(ZOffsetDecorator.ZOffsetDecorator) self._enabled = True - self._onChangeTimerFinished() + self._onChangeTimerFinished(True) diff --git a/cura/PlatformPhysicsOperation.py b/cura/PlatformPhysicsOperation.py index 57206226e2..75c5b437bc 100644 --- a/cura/PlatformPhysicsOperation.py +++ b/cura/PlatformPhysicsOperation.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Operations.Operation import Operation from UM.Operations.GroupedOperation import GroupedOperation diff --git a/cura/PreviewPass.py b/cura/PreviewPass.py new file mode 100644 index 0000000000..c1880e82ef --- /dev/null +++ b/cura/PreviewPass.py @@ -0,0 +1,57 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Uranium is released under the terms of the LGPLv3 or higher. + +from UM.Application import Application +from UM.Resources import Resources + +from UM.View.RenderPass import RenderPass +from UM.View.GL.OpenGL import OpenGL +from UM.View.RenderBatch import RenderBatch + + +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator + +from typing import Optional + +MYPY = False +if MYPY: + from UM.Scene.Camera import Camera + +## A render pass subclass that renders slicable objects with default parameters. +# It uses the active camera by default, but it can be overridden to use a different camera. +# +# This is useful to get a preview image of a scene taken from a different location as the active camera. +class PreviewPass(RenderPass): + def __init__(self, width: int, height: int): + super().__init__("preview", width, height, 0) + + self._camera = None # type: Optional[Camera] + + self._renderer = Application.getInstance().getRenderer() + + self._shader = None + self._scene = Application.getInstance().getController().getScene() + + # Set the camera to be used by this render pass + # if it's None, the active camera is used + def setCamera(self, camera: Optional["Camera"]): + self._camera = camera + + def render(self) -> None: + if not self._shader: + self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "object.shader")) + + # Create a new batch to be rendered + batch = RenderBatch(self._shader) + + # Fill up the batch with objects that can be sliced. ` + for node in DepthFirstIterator(self._scene.getRoot()): + if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible(): + batch.addItem(node.getWorldTransformation(), node.getMeshData()) + + self.bind() + if self._camera is None: + batch.render(Application.getInstance().getController().getScene().getActiveCamera()) + else: + batch.render(self._camera) + self.release() diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 47672a9823..d3bcc10781 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -1,5 +1,5 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty from UM.FlameProfiler import pyqtSlot @@ -51,24 +51,12 @@ class PrintInformation(QObject): def __init__(self, parent = None): super().__init__(parent) - self._current_print_time = Duration(None, self) - self._print_times_per_feature = { - "none": Duration(None, self), - "inset_0": Duration(None, self), - "inset_x": Duration(None, self), - "skin": Duration(None, self), - "support": Duration(None, self), - "skirt": Duration(None, self), - "infill": Duration(None, self), - "support_infill": Duration(None, self), - "travel": Duration(None, self), - "retract": Duration(None, self), - "support_interface": Duration(None, self) - } + self.initializeCuraMessagePrintTimeProperties() self._material_lengths = [] self._material_weights = [] self._material_costs = [] + self._material_names = [] self._pre_sliced = False @@ -76,12 +64,14 @@ class PrintInformation(QObject): if self._backend: self._backend.printDurationMessage.connect(self._onPrintDurationMessage) - self._job_name = "" + self._base_name = "" self._abbr_machine = "" + self._job_name = "" + self._project_name = "" - Application.getInstance().globalContainerStackChanged.connect(self._setAbbreviatedMachineName) - Application.getInstance().fileLoaded.connect(self.setJobName) - + Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) + Application.getInstance().fileLoaded.connect(self.setBaseName) + Application.getInstance().projectFileLoaded.connect(self.setProjectName) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._active_material_container = None @@ -90,6 +80,32 @@ class PrintInformation(QObject): self._material_amounts = [] + # Crate cura message translations and using translation keys initialize empty time Duration object for total time + # and time for each feature + def initializeCuraMessagePrintTimeProperties(self): + self._current_print_time = Duration(None, self) + + self._print_time_message_translations = { + "inset_0": catalog.i18nc("@tooltip", "Outer Wall"), + "inset_x": catalog.i18nc("@tooltip", "Inner Walls"), + "skin": catalog.i18nc("@tooltip", "Skin"), + "infill": catalog.i18nc("@tooltip", "Infill"), + "support_infill": catalog.i18nc("@tooltip", "Support Infill"), + "support_interface": catalog.i18nc("@tooltip", "Support Interface"), + "support": catalog.i18nc("@tooltip", "Support"), + "skirt": catalog.i18nc("@tooltip", "Skirt"), + "travel": catalog.i18nc("@tooltip", "Travel"), + "retract": catalog.i18nc("@tooltip", "Retractions"), + "none": catalog.i18nc("@tooltip", "Other") + } + + self._print_time_message_values = {} + + # Full fill message values using keys from _print_time_message_translations + for key in self._print_time_message_translations.keys(): + self._print_time_message_values[key] = Duration(None, self) + + currentPrintTimeChanged = pyqtSignal() preSlicedChanged = pyqtSignal() @@ -106,10 +122,6 @@ class PrintInformation(QObject): def currentPrintTime(self): return self._current_print_time - @pyqtProperty("QVariantMap", notify = currentPrintTimeChanged) - def printTimesPerFeature(self): - return self._print_times_per_feature - materialLengthsChanged = pyqtSignal() @pyqtProperty("QVariantList", notify = materialLengthsChanged) @@ -128,22 +140,34 @@ class PrintInformation(QObject): def materialCosts(self): return self._material_costs - def _onPrintDurationMessage(self, time_per_feature, material_amounts): - total_time = 0 - for feature, time in time_per_feature.items(): - if time != time: # Check for NaN. Engine can sometimes give us weird values. - self._print_times_per_feature[feature].setDuration(0) - Logger.log("w", "Received NaN for print duration message") - continue - total_time += time - self._print_times_per_feature[feature].setDuration(time) - self._current_print_time.setDuration(total_time) + materialNamesChanged = pyqtSignal() + @pyqtProperty("QVariantList", notify = materialNamesChanged) + def materialNames(self): + return self._material_names + + def _onPrintDurationMessage(self, print_time, material_amounts): + + self._updateTotalPrintTimePerFeature(print_time) self.currentPrintTimeChanged.emit() self._material_amounts = material_amounts self._calculateInformation() + def _updateTotalPrintTimePerFeature(self, print_time): + total_estimated_time = 0 + + for feature, time in print_time.items(): + if time != time: # Check for NaN. Engine can sometimes give us weird values. + self._print_time_message_values.get(feature).setDuration(0) + Logger.log("w", "Received NaN for print duration message") + continue + + total_estimated_time += time + self._print_time_message_values.get(feature).setDuration(time) + + self._current_print_time.setDuration(total_estimated_time) + def _calculateInformation(self): if Application.getInstance().getGlobalContainerStack() is None: return @@ -153,6 +177,7 @@ class PrintInformation(QObject): self._material_lengths = [] self._material_weights = [] self._material_costs = [] + self._material_names = [] material_preference_values = json.loads(Preferences.getInstance().getValue("cura/material_settings")) @@ -171,8 +196,10 @@ class PrintInformation(QObject): weight = float(amount) * float(density) / 1000 cost = 0 + material_name = catalog.i18nc("@label unknown material", "Unknown") if material: material_guid = material.getMetaDataEntry("GUID") + material_name = material.getName() if material_guid in material_preference_values: material_values = material_preference_values[material_guid] @@ -191,10 +218,12 @@ class PrintInformation(QObject): self._material_weights.append(weight) self._material_lengths.append(length) self._material_costs.append(cost) + self._material_names.append(material_name) self.materialLengthsChanged.emit() self.materialWeightsChanged.emit() self.materialCostsChanged.emit() + self.materialNamesChanged.emit() def _onPreferencesChanged(self, preference): if preference != "cura/material_settings": @@ -221,15 +250,13 @@ class PrintInformation(QObject): @pyqtSlot(str) def setJobName(self, name): - # Ensure that we don't use entire path but only filename - name = os.path.basename(name) + self._job_name = name + self.jobNameChanged.emit() - # when a file is opened using the terminal; the filename comes from _onFileLoaded and still contains its - # extension. This cuts the extension off if necessary. - name = os.path.splitext(name)[0] - if self._job_name != name: - self._job_name = name - self.jobNameChanged.emit() + @pyqtSlot(str) + def setProjectName(self, name): + self._project_name = name + self.setJobName(name) jobNameChanged = pyqtSignal() @@ -237,21 +264,49 @@ class PrintInformation(QObject): def jobName(self): return self._job_name - @pyqtSlot(str, result = str) - def createJobName(self, base_name): - if base_name == "": - return "" - base_name = self._stripAccents(base_name) + def _updateJobName(self): + # if the project name is set, we use the project name as the job name, so the job name should not get updated + # if a model file is loaded after that. + if self._project_name != "": + return + + if self._base_name == "": + self._job_name = "" + self.jobNameChanged.emit() + return + + base_name = self._stripAccents(self._base_name) self._setAbbreviatedMachineName() if self._pre_sliced: - return catalog.i18nc("@label", "Pre-sliced file {0}", base_name) + self._job_name = catalog.i18nc("@label", "Pre-sliced file {0}", base_name) elif Preferences.getInstance().getValue("cura/jobname_prefix"): # Don't add abbreviation if it already has the exact same abbreviation. if base_name.startswith(self._abbr_machine + "_"): - return base_name - return self._abbr_machine + "_" + base_name + self._job_name = base_name + else: + self._job_name = self._abbr_machine + "_" + base_name else: - return base_name + self._job_name = base_name + + self.jobNameChanged.emit() + + @pyqtProperty(str) + def baseName(self): + return self._base_name + + @pyqtSlot(str) + def setBaseName(self, base_name): + # Ensure that we don't use entire path but only filename + name = os.path.basename(base_name) + + # when a file is opened using the terminal; the filename comes from _onFileLoaded and still contains its + # extension. This cuts the extension off if necessary. + name = os.path.splitext(name)[0] + + # name is "" when I first had some meshes and afterwards I deleted them so the naming should start again + if name == "" or (self._base_name == "" and self._base_name != name): + self._base_name = name + self._updateJobName() ## Created an acronymn-like abbreviated machine name from the currently active machine name # Called each time the global stack is switched @@ -270,10 +325,34 @@ class PrintInformation(QObject): elif word.isdigit(): abbr_machine += word else: - abbr_machine += self._stripAccents(word.strip("()[]{}#").upper())[0] + stripped_word = self._stripAccents(word.strip("()[]{}#").upper()) + # - use only the first character if the word is too long (> 3 characters) + # - use the whole word if it's not too long (<= 3 characters) + if len(stripped_word) > 3: + stripped_word = stripped_word[0] + abbr_machine += stripped_word self._abbr_machine = abbr_machine ## Utility method that strips accents from characters (eg: â -> a) def _stripAccents(self, str): - return ''.join(char for char in unicodedata.normalize('NFD', str) if unicodedata.category(char) != 'Mn') + return ''.join(char for char in unicodedata.normalize('NFD', str) if unicodedata.category(char) != 'Mn') + + @pyqtSlot(result = "QVariantMap") + def getFeaturePrintTimes(self): + result = {} + for feature, time in self._print_time_message_values.items(): + if feature in self._print_time_message_translations: + result[self._print_time_message_translations[feature]] = time + else: + result[feature] = time + return result + + # Simulate message with zero time duration + def setToZeroPrintInformation(self): + temp_message = {} + for key in self._print_time_message_values.keys(): + temp_message[key] = 0 + + temp_material_amounts = [0] + self._onPrintDurationMessage(temp_message, temp_material_amounts) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index bf013e4b9f..837ecc97c6 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog from UM.OutputDevice.OutputDevice import OutputDevice @@ -71,6 +71,10 @@ class PrinterOutputDevice(QObject, OutputDevice): self._control_item = None self._qml_context = None + self._can_pause = True + self._can_abort = True + self._can_pre_heat_bed = True + self._can_control_manually = True def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None): raise NotImplementedError("requestWrite needs to be implemented") @@ -126,6 +130,26 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to be emitted when some drastic change occurs in the remaining time (not when the time just passes on normally). preheatBedRemainingTimeChanged = pyqtSignal() + # Does the printer support pre-heating the bed at all + @pyqtProperty(bool, constant=True) + def canPreHeatBed(self): + return self._can_pre_heat_bed + + # Does the printer support pause at all + @pyqtProperty(bool, constant=True) + def canPause(self): + return self._can_pause + + # Does the printer support abort at all + @pyqtProperty(bool, constant=True) + def canAbort(self): + return self._can_abort + + # Does the printer support manual control at all + @pyqtProperty(bool, constant=True) + def canControlManually(self): + return self._can_control_manually + @pyqtProperty(QObject, constant=True) def monitorItem(self): # Note that we specifically only check if the monitor component is created. @@ -144,6 +168,9 @@ class PrinterOutputDevice(QObject, OutputDevice): return self._control_item def _createControlViewFromQML(self): + if not self._control_view_qml_path: + return + path = QUrl.fromLocalFile(self._control_view_qml_path) # Because of garbage collection we need to keep this referenced by python. @@ -160,6 +187,8 @@ class PrinterOutputDevice(QObject, OutputDevice): Logger.log("e", "QQmlComponent error string %s", self._control_component.errorString()) def _createMonitorViewFromQML(self): + if not self._monitor_view_qml_path: + return path = QUrl.fromLocalFile(self._monitor_view_qml_path) # Because of garbage collection we need to keep this referenced by python. @@ -612,7 +641,7 @@ class PrinterOutputDevice(QObject, OutputDevice): @pyqtSlot("long") @pyqtSlot("long", "long") def setHeadZ(self, z, speed = 3000): - self._setHeadY(z, speed) + self._setHeadZ(z, speed) ## Move the head of the printer. # Note that this is a relative move. If you want to move the head to a specific position you can use diff --git a/cura/ProfileReader.py b/cura/ProfileReader.py index 266abd50a4..d4600ed99f 100644 --- a/cura/ProfileReader.py +++ b/cura/ProfileReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.PluginObject import PluginObject diff --git a/cura/ProfileWriter.py b/cura/ProfileWriter.py index 276e2b80a3..5f81dc28c3 100644 --- a/cura/ProfileWriter.py +++ b/cura/ProfileWriter.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.PluginObject import PluginObject diff --git a/cura/QualityManager.py b/cura/QualityManager.py index d75d821b46..abd14fa841 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. # This collects a lot of quality and quality changes related code which was split between ContainerManager # and the MachineManager and really needs to usable from both. @@ -61,8 +61,6 @@ class QualityManager: machine_definition = global_stack.definition result = self.findAllQualityChangesForMachine(machine_definition) - for extruder in self.findAllExtruderDefinitionsForMachine(machine_definition): - result.extend(self.findAllQualityChangesForExtruder(extruder)) result = [quality_change for quality_change in result if quality_change.getName() == quality_changes_name] return result @@ -82,6 +80,17 @@ class QualityManager: return list(common_quality_types) + def findAllQualitiesForMachineAndMaterials(self, machine_definition: "DefinitionContainerInterface", material_containers: List[InstanceContainer]) -> List[InstanceContainer]: + # Determine the common set of quality types which can be + # applied to all of the materials for this machine. + quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_containers[0]) + qualities = set(quality_type_dict.values()) + for material_container in material_containers[1:]: + next_quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_container) + qualities.intersection_update(set(next_quality_type_dict.values())) + + return list(qualities) + ## Fetches a dict of quality types names to quality profiles for a combination of machine and material. # # \param machine_definition \type{DefinitionContainer} the machine definition. @@ -121,7 +130,7 @@ class QualityManager: # \param material_container \type{InstanceContainer} the material. # \return \type{List[InstanceContainer]} the list of suitable qualities. def findAllQualitiesForMachineMaterial(self, machine_definition: "DefinitionContainerInterface", material_container: InstanceContainer) -> List[InstanceContainer]: - criteria = {"type": "quality" } + criteria = {"type": "quality"} result = self._getFilteredContainersForStack(machine_definition, [material_container], **criteria) if not result: basic_materials = self._getBasicMaterials(material_container) @@ -140,7 +149,7 @@ class QualityManager: else: definition_id = "fdmprinter" - filter_dict = { "type": "quality_changes", "extruder": None, "definition": definition_id } + filter_dict = { "type": "quality_changes", "definition": definition_id } quality_changes_list = ContainerRegistry.getInstance().findInstanceContainers(**filter_dict) return quality_changes_list @@ -169,12 +178,25 @@ class QualityManager: def findAllUsableQualitiesForMachineAndExtruders(self, global_container_stack: "GlobalStack", extruder_stacks: List["ExtruderStack"]) -> List[InstanceContainer]: global_machine_definition = global_container_stack.getBottom() + machine_manager = Application.getInstance().getMachineManager() + active_stack_id = machine_manager.activeStackId + + materials = [] + + # TODO: fix this if extruder_stacks: - # Multi-extruder machine detected. - materials = [stack.material for stack in extruder_stacks] + # Multi-extruder machine detected + for stack in extruder_stacks: + if stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(stack.material) else: - # Machine with one extruder. - materials = [global_container_stack.material] + # Machine with one extruder + if global_container_stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(global_container_stack.material) quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials) @@ -233,13 +255,16 @@ class QualityManager: filter_by_material = False machine_definition = self.getParentMachineDefinition(machine_definition) + criteria["definition"] = machine_definition.getId() + found_containers_with_machine_definition = ContainerRegistry.getInstance().findInstanceContainers(**criteria) whole_machine_definition = self.getWholeMachineDefinition(machine_definition) if whole_machine_definition.getMetaDataEntry("has_machine_quality"): definition_id = machine_definition.getMetaDataEntry("quality_definition", whole_machine_definition.getId()) criteria["definition"] = definition_id filter_by_material = whole_machine_definition.getMetaDataEntry("has_materials") - else: + # only fall back to "fdmprinter" when there is no container for this machine + elif not found_containers_with_machine_definition: criteria["definition"] = "fdmprinter" # Stick the material IDs in a set diff --git a/cura/SetParentOperation.py b/cura/SetParentOperation.py index e2fb18feff..612c02f18d 100644 --- a/cura/SetParentOperation.py +++ b/cura/SetParentOperation.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Scene.SceneNode import SceneNode from UM.Operations import Operation diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 9cbd93555a..85aed93cf6 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path import urllib @@ -333,16 +333,15 @@ class ContainerManager(QObject): @pyqtSlot(str, result = bool) def isContainerUsed(self, container_id): Logger.log("d", "Checking if container %s is currently used", container_id) - # check if this is a material container. If so, check if any material with the same GUID is being used by any + # check if this is a material container. If so, check if any material with the same base is being used by any # stacks. container_ids_to_check = [container_id] container_results = self._container_registry.findInstanceContainers(id = container_id, type = "material") if container_results: this_container = container_results[0] - container_guid = this_container.getMetaDataEntry("GUID") - # check all material container IDs with the same GUID - material_containers = self._container_registry.findInstanceContainers(id = container_id, - GUID = container_guid, + material_base_file = this_container.getMetaDataEntry("base_file", this_container.getId()) + # check all material container IDs with the same base + material_containers = self._container_registry.findInstanceContainers(base_file = material_base_file, type = "material") if material_containers: container_ids_to_check = [container.getId() for container in material_containers] @@ -430,7 +429,7 @@ class ContainerManager(QObject): if not Platform.isWindows(): if os.path.exists(file_url): result = QMessageBox.question(None, catalog.i18nc("@title:window", "File Already Exists"), - catalog.i18nc("@label", "The file {0} already exists. Are you sure you want to overwrite it?").format(file_url)) + catalog.i18nc("@label Don't translate the XML tag !", "The file {0} already exists. Are you sure you want to overwrite it?").format(file_url)) if result == QMessageBox.No: return { "status": "cancelled", "message": "User cancelled"} diff --git a/cura/Settings/ContainerSettingsModel.py b/cura/Settings/ContainerSettingsModel.py index 5d7a252a4f..2c4bef6464 100644 --- a/cura/Settings/ContainerSettingsModel.py +++ b/cura/Settings/ContainerSettingsModel.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from UM.Qt.ListModel import ListModel diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index c991c8f9ca..e623bd860b 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os import os.path @@ -110,7 +110,7 @@ class CuraContainerRegistry(ContainerRegistry): if not Platform.isWindows(): if os.path.exists(file_name): result = QMessageBox.question(None, catalog.i18nc("@title:window", "File Already Exists"), - catalog.i18nc("@label", "The file {0} already exists. Are you sure you want to overwrite it?").format(file_name)) + catalog.i18nc("@label Don't translate the XML tag !", "The file {0} already exists. Are you sure you want to overwrite it?").format(file_name)) if result == QMessageBox.No: return found_containers = [] @@ -140,15 +140,20 @@ class CuraContainerRegistry(ContainerRegistry): success = profile_writer.write(file_name, found_containers) except Exception as e: Logger.log("e", "Failed to export profile to %s: %s", file_name, str(e)) - m = Message(catalog.i18nc("@info:status", "Failed to export profile to {0}: {1}", file_name, str(e)), lifetime = 0) + m = Message(catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to export profile to {0}: {1}", file_name, str(e)), + lifetime = 0, + title = catalog.i18nc("@info:title", "Error")) m.show() return if not success: Logger.log("w", "Failed to export profile to %s: Writer plugin reported failure.", file_name) - m = Message(catalog.i18nc("@info:status", "Failed to export profile to {0}: Writer plugin reported failure.", file_name), lifetime = 0) + m = Message(catalog.i18nc("@info:status Don't translate the XML tag !", "Failed to export profile to {0}: Writer plugin reported failure.", file_name), + lifetime = 0, + title = catalog.i18nc("@info:title", "Error")) m.show() return - m = Message(catalog.i18nc("@info:status", "Exported profile to {0}", file_name)) + m = Message(catalog.i18nc("@info:status Don't translate the XML tag !", "Exported profile to {0}", file_name), + title = catalog.i18nc("@info:title", "Export succeeded")) m.show() ## Gets the plugin object matching the criteria @@ -174,7 +179,7 @@ class CuraContainerRegistry(ContainerRegistry): def importProfile(self, file_name): Logger.log("d", "Attempting to import profile %s", file_name) if not file_name: - return { "status": "error", "message": catalog.i18nc("@info:status", "Failed to import profile from {0}: {1}", file_name, "Invalid path")} + return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to import profile from {0}: {1}", file_name, "Invalid path")} plugin_registry = PluginRegistry.getInstance() extension = file_name.split(".")[-1] @@ -196,7 +201,7 @@ class CuraContainerRegistry(ContainerRegistry): except Exception as e: # Note that this will fail quickly. That is, if any profile reader throws an exception, it will stop reading. It will only continue reading if the reader returned None. Logger.log("e", "Failed to import profile from %s: %s while using profile reader. Got exception %s", file_name,profile_reader.getPluginId(), str(e)) - return { "status": "error", "message": catalog.i18nc("@info:status", "Failed to import profile from {0}: {1}", file_name, str(e))} + return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to import profile from {0}: {1}", file_name, str(e))} if profile_or_list: # Success! name_seed = os.path.splitext(os.path.basename(file_name))[0] new_name = self.uniqueName(name_seed) @@ -205,7 +210,7 @@ class CuraContainerRegistry(ContainerRegistry): result = self._configureProfile(profile, name_seed, new_name) if result is not None: - return {"status": "error", "message": catalog.i18nc("@info:status", "Failed to import profile from {0}: {1}", file_name, result)} + return {"status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to import profile from {0}: {1}", file_name, result)} return {"status": "ok", "message": catalog.i18nc("@info:status", "Successfully imported profile {0}", profile.getName())} else: @@ -239,7 +244,7 @@ class CuraContainerRegistry(ContainerRegistry): result = self._configureProfile(profile, profile_id, new_name) if result is not None: - return {"status": "error", "message": catalog.i18nc("@info:status", "Failed to import profile from {0}: {1}", file_name, result)} + return {"status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to import profile from {0}: {1}", file_name, result)} profile_index += 1 @@ -298,6 +303,9 @@ class CuraContainerRegistry(ContainerRegistry): if "material" in quality_type_criteria: materials = ContainerRegistry.getInstance().findInstanceContainers(id = quality_type_criteria["material"]) del quality_type_criteria["material"] + # Do not filter quality containers here with materials because we are trying to import a profile, so it should + # NOT be restricted by the active materials on the current machine. + materials = None # Check to make sure the imported profile actually makes sense in context of the current configuration. # This prevents issues where importing a "draft" profile for a machine without "draft" qualities would report as diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index cdda14ee18..2d3bf683f6 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path @@ -432,6 +432,7 @@ class CuraContainerStack(ContainerStack): # - If the machine definition has a metadata entry "has_machine_materials", the definition of the material should # be the same as the machine definition for this stack. Otherwise, the definition should be "fdmprinter". # - The container should have a metadata entry "type" with value "material". + # - The material should have an approximate diameter that matches the machine # - If the machine definition has a metadata entry "has_variants" and set to True, the "variant" metadata entry of # the material should be the same as the ID of the variant in the stack. Only applies if "has_machine_materials" is also True. # - If the stack currently has a material set, try to find a material that matches the current material by name. @@ -460,6 +461,9 @@ class CuraContainerStack(ContainerStack): if preferred_material: search_criteria["id"] = preferred_material + approximate_material_diameter = str(round(self.getProperty("material_diameter", "value"))) + search_criteria["approximate_diameter"] = approximate_material_diameter + materials = ContainerRegistry.getInstance().findInstanceContainers(**search_criteria) if not materials: Logger.log("w", "The preferred material \"{material}\" could not be found for stack {stack}", material = preferred_material, stack = self.id) diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index 0f8b999800..09815da319 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Logger import Logger @@ -29,21 +29,24 @@ class CuraStackBuilder: return None machine_definition = definitions[0] - name = registry.createUniqueName("machine", "", name, machine_definition.name) + + generated_name = registry.createUniqueName("machine", "", name, machine_definition.name) # Make sure the new name does not collide with any definition or (quality) profile # createUniqueName() only looks at other stacks, but not at definitions or quality profiles # Note that we don't go for uniqueName() immediately because that function matches with ignore_case set to true - if registry.findContainers(id = name): - name = registry.uniqueName(name) + if registry.findContainers(id = generated_name): + generated_name = registry.uniqueName(generated_name) new_global_stack = cls.createGlobalStack( - new_stack_id = name, + new_stack_id = generated_name, definition = machine_definition, quality = "default", material = "default", variant = "default", ) + new_global_stack.setName(generated_name) + for extruder_definition in registry.findDefinitionContainers(machine = machine_definition.id): position = extruder_definition.getMetaDataEntry("position", None) if not position: diff --git a/cura/Settings/Exceptions.py b/cura/Settings/Exceptions.py index a30059b2e7..0a869cf922 100644 --- a/cura/Settings/Exceptions.py +++ b/cura/Settings/Exceptions.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. ## Raised when trying to perform an operation like add on a stack that does not allow that. diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 1c254f5cfc..c8daca7f92 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant #For communicating data and events to Qt. from UM.FlameProfiler import pyqtSlot @@ -16,6 +16,7 @@ from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.SettingFunction import SettingFunction from UM.Settings.ContainerStack import ContainerStack from UM.Settings.Interfaces import DefinitionContainerInterface +from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext from typing import Optional, List, TYPE_CHECKING, Union if TYPE_CHECKING: @@ -41,7 +42,7 @@ class ExtruderManager(QObject): def __init__(self, parent = None): super().__init__(parent) self._extruder_trains = { } #Per machine, a dictionary of extruder container stack IDs. Only for separately defined extruders. - self._active_extruder_index = 0 + self._active_extruder_index = -1 # Indicates the index of the active extruder stack. -1 means no active extruder stack self._selected_object_extruders = [] Application.getInstance().globalContainerStackChanged.connect(self.__globalContainerStackChanged) self._global_container_stack_definition_id = None @@ -74,14 +75,18 @@ class ExtruderManager(QObject): except KeyError: return 0 + ## Gets a dict with the extruder stack ids with the extruder number as the key. + # The key "-1" indicates the global stack id. + # @pyqtProperty("QVariantMap", notify = extrudersChanged) def extruderIds(self): - map = {} + extruder_stack_ids = {} global_stack_id = Application.getInstance().getGlobalContainerStack().getId() + extruder_stack_ids["-1"] = global_stack_id if global_stack_id in self._extruder_trains: for position in self._extruder_trains[global_stack_id]: - map[position] = self._extruder_trains[global_stack_id][position].getId() - return map + extruder_stack_ids[position] = self._extruder_trains[global_stack_id][position].getId() + return extruder_stack_ids @pyqtSlot(str, result = str) def getQualityChangesIdByExtruderStackId(self, id: str) -> str: @@ -445,28 +450,18 @@ class ExtruderManager(QObject): support_roof_enabled |= stack_to_use.getProperty("support_roof_enable", "value") # Check limit to extruders - limit_to_extruder_feature_list = ["wall_extruder_nr", - "wall_0_extruder_nr", + limit_to_extruder_feature_list = ["wall_0_extruder_nr", "wall_x_extruder_nr", "roofing_extruder_nr", "top_bottom_extruder_nr", "infill_extruder_nr", ] - wall_extruder_nr = None for extruder_nr_feature_name in limit_to_extruder_feature_list: extruder_nr = int(global_stack.getProperty(extruder_nr_feature_name, "value")) if extruder_nr == -1: - # outer and inner wall extruder numbers should first inherit from the wall extruder number - if extruder_nr_feature_name in ["wall_0_extruder_nr", "wall_x_extruder_nr"]: - extruder_nr = wall_extruder_nr - else: - extruder_nr = 0 - + continue used_extruder_stack_ids.add(self.extruderIds[str(extruder_nr)]) - if extruder_nr_feature_name == "wall_extruder_nr": - wall_extruder_nr = extruder_nr - # Check support extruders if support_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) @@ -516,23 +511,40 @@ class ExtruderManager(QObject): result.extend(self.getActiveExtruderStacks()) return result - ## Returns the list of active extruder stacks. + ## Returns the list of active extruder stacks, taking into account the machine extruder count. # # \return \type{List[ContainerStack]} a list of def getActiveExtruderStacks(self) -> List["ExtruderStack"]: global_stack = Application.getInstance().getGlobalContainerStack() result = [] + machine_extruder_count = global_stack.getProperty("machine_extruder_count", "value") + + # In case the printer is using one extruder, shouldn't exist active extruder stacks + if machine_extruder_count == 1: + return result + if global_stack and global_stack.getId() in self._extruder_trains: for extruder in sorted(self._extruder_trains[global_stack.getId()]): result.append(self._extruder_trains[global_stack.getId()][extruder]) - return result + + return result[:machine_extruder_count] def __globalContainerStackChanged(self) -> None: global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack and global_container_stack.getBottom() and global_container_stack.getBottom().getId() != self._global_container_stack_definition_id: self._global_container_stack_definition_id = global_container_stack.getBottom().getId() self.globalContainerStackDefinitionChanged.emit() + + # If the global container changed, the number of extruders could be changed and so the active_extruder_index is updated + extruder_count = global_container_stack.getProperty("machine_extruder_count", "value") + if extruder_count > 1: + if self._active_extruder_index == -1: + self.setActiveExtruderIndex(0) + else: + if self._active_extruder_index != -1: + self.setActiveExtruderIndex(-1) + self.activeExtruderChanged.emit() self.resetSelectedObjectExtruders() @@ -576,6 +588,46 @@ class ExtruderManager(QObject): return result + ## Get all extruder values for a certain setting. This function will skip the user settings container. + # + # This is exposed to SettingFunction so it can be used in value functions. + # + # \param key The key of the setting to retrieve values for. + # + # \return A list of values for all extruders. If an extruder does not have a value, it will not be in the list. + # If no extruder has the value, the list will contain the global value. + @staticmethod + def getDefaultExtruderValues(key): + global_stack = Application.getInstance().getGlobalContainerStack() + context = PropertyEvaluationContext(global_stack) + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } + + result = [] + for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + # only include values from extruders that are "active" for the current machine instance + if int(extruder.getMetaDataEntry("position")) >= global_stack.getProperty("machine_extruder_count", "value", context = context): + continue + + value = extruder.getRawProperty(key, "value", context = context) + + if value is None: + continue + + if isinstance(value, SettingFunction): + value = value(extruder, context = context) + + result.append(value) + + if not result: + result.append(global_stack.getProperty(key, "value", context = context)) + + return result + ## Get all extruder values for a certain setting. # # This is exposed to qml for display purposes @@ -609,6 +661,35 @@ class ExtruderManager(QObject): return value + ## Get the default value from the given extruder. This function will skip the user settings container. + # + # This is exposed to SettingFunction to use in value functions. + # + # \param extruder_index The index of the extruder to get the value from. + # \param key The key of the setting to get the value of. + # + # \return The value of the setting for the specified extruder or for the + # global stack if not found. + @staticmethod + def getDefaultExtruderValue(extruder_index, key): + extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) + context = PropertyEvaluationContext(extruder) + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } + + if extruder: + value = extruder.getRawProperty(key, "value", context = context) + if isinstance(value, SettingFunction): + value = value(extruder, context = context) + else: # Just a value from global. + value = Application.getInstance().getGlobalContainerStack().getProperty(key, "value", context = context) + + return value + ## Get the resolve value or value for a given key # # This is the effective value for a given key, it is used for values in the global stack. @@ -622,3 +703,25 @@ class ExtruderManager(QObject): resolved_value = global_stack.getProperty(key, "value") return resolved_value + + ## Get the resolve value or value for a given key without looking the first container (user container) + # + # This is the effective value for a given key, it is used for values in the global stack. + # This is exposed to SettingFunction to use in value functions. + # \param key The key of the setting to get the value of. + # + # \return The effective value + @staticmethod + def getDefaultResolveOrValue(key): + global_stack = Application.getInstance().getGlobalContainerStack() + context = PropertyEvaluationContext(global_stack) + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } + + resolved_value = global_stack.getProperty(key, "value", context = context) + + return resolved_value diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index 908bc4cd6f..d8ff6645a8 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from typing import Any, TYPE_CHECKING, Optional @@ -7,7 +7,7 @@ from UM.Decorators import override from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase from UM.Settings.ContainerStack import ContainerStack from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.Interfaces import ContainerInterface +from UM.Settings.Interfaces import ContainerInterface, PropertyEvaluationContext from . import Exceptions from .CuraContainerStack import CuraContainerStack @@ -57,21 +57,32 @@ class ExtruderStack(CuraContainerStack): # \throws Exceptions.NoGlobalStackError Raised when trying to get a property from an extruder without # having a next stack set. @override(ContainerStack) - def getProperty(self, key: str, property_name: str) -> Any: + def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> Any: if not self._next_stack: raise Exceptions.NoGlobalStackError("Extruder {id} is missing the next stack!".format(id = self.id)) - if not super().getProperty(key, "settable_per_extruder"): - return self.getNextStack().getProperty(key, property_name) + if context is None: + context = PropertyEvaluationContext() + context.pushContainer(self) - limit_to_extruder = super().getProperty(key, "limit_to_extruder") + if not super().getProperty(key, "settable_per_extruder", context): + result = self.getNextStack().getProperty(key, property_name, context) + context.popContainer() + return result + + limit_to_extruder = super().getProperty(key, "limit_to_extruder", context) + if limit_to_extruder is not None: + limit_to_extruder = str(limit_to_extruder) if (limit_to_extruder is not None and limit_to_extruder != "-1") and self.getMetaDataEntry("position") != str(limit_to_extruder): if str(limit_to_extruder) in self.getNextStack().extruders: - result = self.getNextStack().extruders[str(limit_to_extruder)].getProperty(key, property_name) + result = self.getNextStack().extruders[str(limit_to_extruder)].getProperty(key, property_name, context) if result is not None: + context.popContainer() return result - return super().getProperty(key, property_name) + result = super().getProperty(key, property_name, context) + context.popContainer() + return result @override(CuraContainerStack) def _getMachineDefinition(self) -> ContainerInterface: diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 26943e61ca..b13e51723b 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -1,15 +1,17 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer from typing import Iterable +from UM.i18n import i18nCatalog import UM.Qt.ListModel from UM.Application import Application import UM.FlameProfiler from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderStack import ExtruderStack #To listen to changes on the extruders. -from cura.Settings.MachineManager import MachineManager #To listen to changes on the extruders of the currently active machine. + +catalog = i18nCatalog("cura") ## Model that holds extruders. # @@ -172,7 +174,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): color = material.getMetaDataEntry("color_code", default = self.defaultColors[0]) if material else self.defaultColors[0] item = { "id": global_container_stack.getId(), - "name": "Global", + "name": catalog.i18nc("@menuitem", "Global"), "color": color, "index": -1, "definition": "" @@ -215,7 +217,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): if self._add_optional_extruder: item = { "id": "", - "name": "Not overridden", + "name": catalog.i18nc("@menuitem", "Not overridden"), "color": "#ffffff", "index": -1, "definition": "" diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index e49b1a25de..88218c2f1e 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from typing import Any, Dict, Optional @@ -11,6 +11,7 @@ from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase from UM.Settings.ContainerStack import ContainerStack from UM.Settings.SettingInstance import InstanceState from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.Interfaces import PropertyEvaluationContext from UM.Logger import Logger from . import Exceptions @@ -61,8 +62,10 @@ class GlobalStack(CuraContainerStack): # already have the maximum number of extruders. def addExtruder(self, extruder: ContainerStack) -> None: extruder_count = self.getProperty("machine_extruder_count", "value") - if extruder_count and len(self._extruders) + 1 > extruder_count: - Logger.log("w", "Adding extruder {meta} to {id} but its extruder count is {count}".format(id = self.id, count = extruder_count, meta = str(extruder.getMetaData()))) + + if extruder_count <= 1: + Logger.log("i", "Not adding extruder[%s] to [%s] because it is a single-extrusion machine.", + extruder.id, self.id) return position = extruder.getMetaDataEntry("position") @@ -73,7 +76,9 @@ class GlobalStack(CuraContainerStack): if any(item.getId() == extruder.id for item in self._extruders.values()): Logger.log("w", "Extruder [%s] has already been added to this stack [%s]", extruder.id, self._id) return + self._extruders[position] = extruder + Logger.log("i", "Extruder[%s] added to [%s] at position [%s]", extruder.id, self.id, position) ## Overridden from ContainerStack # @@ -87,29 +92,38 @@ class GlobalStack(CuraContainerStack): # # \return The value of the property for the specified setting, or None if not found. @override(ContainerStack) - def getProperty(self, key: str, property_name: str) -> Any: + def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> Any: if not self.definition.findDefinitions(key = key): return None + if context is None: + context = PropertyEvaluationContext() + context.pushContainer(self) + # Handle the "resolve" property. - if self._shouldResolve(key, property_name): + if self._shouldResolve(key, property_name, context): self._resolving_settings.add(key) - resolve = super().getProperty(key, "resolve") + resolve = super().getProperty(key, "resolve", context) self._resolving_settings.remove(key) if resolve is not None: return resolve # Handle the "limit_to_extruder" property. - limit_to_extruder = super().getProperty(key, "limit_to_extruder") + limit_to_extruder = super().getProperty(key, "limit_to_extruder", context) + if limit_to_extruder is not None: + limit_to_extruder = str(limit_to_extruder) if limit_to_extruder is not None and limit_to_extruder != "-1" and limit_to_extruder in self._extruders: - if super().getProperty(key, "settable_per_extruder"): - result = self._extruders[str(limit_to_extruder)].getProperty(key, property_name) + if super().getProperty(key, "settable_per_extruder", context): + result = self._extruders[str(limit_to_extruder)].getProperty(key, property_name, context) if result is not None: + context.popContainer() return result else: Logger.log("e", "Setting {setting} has limit_to_extruder but is not settable per extruder!", setting = key) - return super().getProperty(key, property_name) + result = super().getProperty(key, property_name, context) + context.popContainer() + return result ## Overridden from ContainerStack # @@ -137,7 +151,7 @@ class GlobalStack(CuraContainerStack): # Determine whether or not we should try to get the "resolve" property instead of the # requested property. - def _shouldResolve(self, key: str, property_name: str) -> bool: + def _shouldResolve(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> bool: if property_name is not "value": # Do not try to resolve anything but the "value" property return False @@ -149,7 +163,7 @@ class GlobalStack(CuraContainerStack): # track all settings that are being resolved. return False - setting_state = super().getProperty(key, "state") + setting_state = super().getProperty(key, "state", context = context) if setting_state is not None and setting_state != InstanceState.Default: # When the user has explicitly set a value, we should ignore any resolve and # just return that value. diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e946c18790..f85acc164d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1,6 +1,9 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. -from typing import Union +# Cura is released under the terms of the LGPLv3 or higher. + +#Type hinting. +from typing import Union, List, Dict +from UM.Signal import Signal from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer from UM.FlameProfiler import pyqtSlot @@ -36,8 +39,6 @@ if TYPE_CHECKING: from cura.Settings.CuraContainerStack import CuraContainerStack from cura.Settings.GlobalStack import GlobalStack -import os - class MachineManager(QObject): def __init__(self, parent = None): @@ -46,6 +47,11 @@ class MachineManager(QObject): self._active_container_stack = None # type: CuraContainerStack self._global_container_stack = None # type: GlobalStack + # Used to store the new containers until after confirming the dialog + self._new_variant_container = None + self._new_material_container = None + self._new_quality_containers = [] + self._error_check_timer = QTimer() self._error_check_timer.setInterval(250) self._error_check_timer.setSingleShot(True) @@ -57,6 +63,7 @@ class MachineManager(QObject): self._instance_container_timer.timeout.connect(self.__onInstanceContainersChanged) Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) + ## When the global container is changed, active material probably needs to be updated. self.globalContainerChanged.connect(self.activeMaterialChanged) self.globalContainerChanged.connect(self.activeVariantChanged) @@ -64,10 +71,10 @@ class MachineManager(QObject): self._stacks_have_errors = None - self._empty_variant_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_material_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_changes_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() + self._empty_variant_container = ContainerRegistry.getInstance().findContainers(id = "empty_variant")[0] + self._empty_material_container = ContainerRegistry.getInstance().findContainers(id = "empty_material")[0] + self._empty_quality_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + self._empty_quality_changes_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality_changes")[0] self._onGlobalContainerChanged() @@ -83,6 +90,9 @@ class MachineManager(QObject): ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeStackChanged) self.activeStackChanged.connect(self.activeStackValueChanged) + # when a user closed dialog check if any delayed material or variant changes need to be applied + Application.getInstance().onDiscardOrKeepProfileChangesClosed.connect(self._executeDelayedActiveContainerStackChanges) + Preferences.getInstance().addPreference("cura/active_machine", "") self._global_event_keys = set() @@ -105,9 +115,10 @@ class MachineManager(QObject): self._auto_hotends_changed = {} self._material_incompatible_message = Message(catalog.i18nc("@info:status", - "The selected material is incompatible with the selected machine or configuration.")) + "The selected material is incompatible with the selected machine or configuration."), + title = catalog.i18nc("@info:title", "Incompatible Material")) - globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value) + globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value) activeMaterialChanged = pyqtSignal() activeVariantChanged = pyqtSignal() activeQualityChanged = pyqtSignal() @@ -137,6 +148,14 @@ class MachineManager(QObject): self.outputDevicesChanged.emit() + @property + def newVariant(self): + return self._new_variant_container + + @property + def newMaterial(self): + return self._new_material_container + @pyqtProperty("QVariantList", notify = outputDevicesChanged) def printerOutputDevices(self): return self._printer_output_devices @@ -267,7 +286,6 @@ class MachineManager(QObject): extruder_stack.containersChanged.disconnect(self._onInstanceContainersChanged) self._global_container_stack = Application.getInstance().getGlobalContainerStack() - self._active_container_stack = self._global_container_stack self.globalContainerChanged.emit() @@ -299,6 +317,10 @@ class MachineManager(QObject): quality = self._global_container_stack.quality quality.nameChanged.connect(self._onQualityNameChanged) + + self._active_container_stack = self._global_container_stack + self.activeStackChanged.emit() + self._error_check_timer.start() ## Update self._stacks_valid according to _checkStacksForErrors and emit if change. @@ -328,6 +350,7 @@ class MachineManager(QObject): self.activeQualityChanged.emit() self.activeVariantChanged.emit() self.activeMaterialChanged.emit() + self._updateStacksHaveErrors() # Prevents unwanted re-slices after changing machine self._error_check_timer.start() def _onInstanceContainersChanged(self, container): @@ -344,15 +367,20 @@ class MachineManager(QObject): @pyqtSlot(str) def setActiveMachine(self, stack_id: str) -> None: self.blurSettings.emit() # Ensure no-one has focus. + self._cancelDelayedActiveContainerStackChanges() + containers = ContainerRegistry.getInstance().findContainerStacks(id = stack_id) if containers: Application.getInstance().setGlobalContainerStack(containers[0]) + self.__onInstanceContainersChanged() + @pyqtSlot(str, str) def addMachine(self, name: str, definition_id: str) -> None: new_stack = CuraStackBuilder.createMachine(name, definition_id) if new_stack: - Application.getInstance().setGlobalContainerStack(new_stack) + # Instead of setting the global container stack here, we set the active machine and so the signals are emitted + self.setActiveMachine(new_stack.getId()) else: Logger.log("w", "Failed creating a new machine!") @@ -365,7 +393,7 @@ class MachineManager(QObject): def _createUniqueName(self, container_type: str, current_name: str, new_name: str, fallback_name: str) -> str: return ContainerRegistry.getInstance().createUniqueName(container_type, current_name, new_name, fallback_name) - def _checkStacksHaveErrors(self): + def _checkStacksHaveErrors(self) -> bool: if self._global_container_stack is None: #No active machine. return False @@ -389,7 +417,7 @@ class MachineManager(QObject): ## Check if the global_container has instances in the user container @pyqtProperty(bool, notify = activeStackValueChanged) - def hasUserSettings(self): + def hasUserSettings(self) -> bool: if not self._global_container_stack: return False @@ -404,7 +432,7 @@ class MachineManager(QObject): return False @pyqtProperty(int, notify = activeStackValueChanged) - def numUserSettings(self): + def numUserSettings(self) -> int: if not self._global_container_stack: return 0 num_user_settings = 0 @@ -449,7 +477,7 @@ class MachineManager(QObject): # Note that the _stacks_have_errors is cached due to performance issues # Calling _checkStack(s)ForErrors on every change is simply too expensive @pyqtProperty(bool, notify = stacksValidationChanged) - def stacksHaveErrors(self): + def stacksHaveErrors(self) -> bool: return bool(self._stacks_have_errors) @pyqtProperty(str, notify = activeStackChanged) @@ -474,7 +502,7 @@ class MachineManager(QObject): return "" @pyqtProperty(QObject, notify = globalContainerChanged) - def activeMachine(self) -> "GlobalStack": + def activeMachine(self) -> Optional["GlobalStack"]: return self._global_container_stack @pyqtProperty(str, notify = activeStackChanged) @@ -494,31 +522,23 @@ class MachineManager(QObject): return "" @pyqtProperty("QVariantList", notify=activeVariantChanged) - def activeVariantNames(self): + def activeVariantNames(self) -> List[str]: result = [] - if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None: - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): + active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() + if active_stacks is not None: + for stack in active_stacks: variant_container = stack.variant if variant_container and variant_container != self._empty_variant_container: result.append(variant_container.getName()) return result - @pyqtProperty("QVariantList", notify = activeVariantChanged) - def activeMaterialIds(self): - result = [] - if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None: - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): - if stack.variant and stack.variant != self._empty_variant_container: - result.append(stack.variant.getId()) - - return result - @pyqtProperty("QVariantList", notify = activeMaterialChanged) - def activeMaterialNames(self): + def activeMaterialNames(self) -> List[str]: result = [] - if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None: - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): + active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() + if active_stacks is not None: + for stack in active_stacks: material_container = stack.material if material_container and material_container != self._empty_material_container: result.append(material_container.getName()) @@ -534,34 +554,36 @@ class MachineManager(QObject): return "" @pyqtProperty("QVariantMap", notify = activeVariantChanged) - def allActiveVariantIds(self): - if not self._global_container_stack: - return {} - + def allActiveVariantIds(self) -> Dict[str, str]: result = {} + active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() + if active_stacks is not None: #If we have a global stack. + for stack in active_stacks: + variant_container = stack.variant + if not variant_container: + continue - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): - variant_container = stack.variant - if not variant_container: - continue - - result[stack.getId()] = variant_container.getId() + result[stack.getId()] = variant_container.getId() return result + ## Gets a dict with the active materials ids set in all extruder stacks and the global stack + # (when there is one extruder, the material is set in the global stack) + # + # \return The material ids in all stacks @pyqtProperty("QVariantMap", notify = activeMaterialChanged) - def allActiveMaterialIds(self): - if not self._global_container_stack: - return {} - + def allActiveMaterialIds(self) -> Dict[str, str]: result = {} + active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): - material_container = stack.material - if not material_container: - continue + result[self._global_container_stack.getId()] = self._global_container_stack.material.getId() - result[stack.getId()] = material_container.getId() + if active_stacks is not None: # If we have extruder stacks + for stack in active_stacks: + material_container = stack.material + if not material_container: + continue + result[stack.getId()] = material_container.getId() return result @@ -659,6 +681,23 @@ class MachineManager(QObject): return Util.parseBool(quality.getMetaDataEntry("supported", True)) return False + ## Returns whether there is anything unsupported in the current set-up. + # + # The current set-up signifies the global stack and all extruder stacks, + # so this indicates whether there is any container in any of the container + # stacks that is not marked as supported. + @pyqtProperty(bool, notify = activeQualityChanged) + def isCurrentSetupSupported(self) -> bool: + if not self._global_container_stack: + return False + for stack in [self._global_container_stack] + list(self._global_container_stack.extruders.values()): + for container in stack.getContainers(): + if not container: + return False + if not Util.parseBool(container.getMetaDataEntry("supported", True)): + return False + return True + ## Get the Quality ID associated with the currently active extruder # Note that this only returns the "quality", not the "quality_changes" # \returns QualityID (string) if found, empty string otherwise @@ -728,7 +767,7 @@ class MachineManager(QObject): self.blurSettings.emit() old_material.nameChanged.disconnect(self._onMaterialNameChanged) - self._active_container_stack.material = material_container + self._new_material_container = material_container # self._active_container_stack will be updated with a delay Logger.log("d", "Active material changed") material_container.nameChanged.connect(self._onMaterialNameChanged) @@ -782,13 +821,13 @@ class MachineManager(QObject): old_material = self._active_container_stack.material if old_variant: self.blurSettings.emit() - self._active_container_stack.variant = containers[0] + self._new_variant_container = containers[0] # self._active_container_stack will be updated with a delay Logger.log("d", "Active variant changed to {active_variant_id}".format(active_variant_id = containers[0].getId())) preferred_material_name = None if old_material: preferred_material_name = old_material.getName() - - self.setActiveMaterial(self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id) + preferred_material_id = self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id + self.setActiveMaterial(preferred_material_id) else: Logger.log("w", "While trying to set the active variant, no variant was found to replace.") @@ -803,8 +842,6 @@ class MachineManager(QObject): if not containers or not self._global_container_stack: return - Logger.log("d", "Attempting to change the active quality to %s", quality_id) - # Quality profile come in two flavours: type=quality and type=quality_changes # If we found a quality_changes profile then look up its parent quality profile. container_type = containers[0].getMetaDataEntry("type") @@ -824,37 +861,86 @@ class MachineManager(QObject): if new_quality_settings_list is None: return - name_changed_connect_stacks = [] # Connect these stacks to the name changed callback + # check if any of the stacks have a not supported profile + # if that is the case, all stacks should have a not supported state (otherwise it will show quality_type normal) + has_not_supported_quality = False + + # check all stacks for not supported + for setting_info in new_quality_settings_list: + if setting_info["quality"].getMetaDataEntry("quality_type") == "not_supported": + has_not_supported_quality = True + break + + # set all stacks to not supported if that's the case + if has_not_supported_quality: + for setting_info in new_quality_settings_list: + setting_info["quality"] = self._empty_quality_container + + self._new_quality_containers.clear() + + # store the upcoming quality profile changes per stack for later execution + # this prevents re-slicing before the user has made a choice in the discard or keep dialog + # (see _executeDelayedActiveContainerStackChanges) for setting_info in new_quality_settings_list: stack = setting_info["stack"] stack_quality = setting_info["quality"] stack_quality_changes = setting_info["quality_changes"] - name_changed_connect_stacks.append(stack_quality) - name_changed_connect_stacks.append(stack_quality_changes) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit=True) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit=True) + self._new_quality_containers.append({ + "stack": stack, + "quality": stack_quality, + "quality_changes": stack_quality_changes + }) - # Send emits that are postponed in replaceContainer. - # Here the stacks are finished replacing and every value can be resolved based on the current state. - for setting_info in new_quality_settings_list: - setting_info["stack"].sendPostponedEmits() - - # Connect to onQualityNameChanged - for stack in name_changed_connect_stacks: - stack.nameChanged.connect(self._onQualityNameChanged) + has_user_interaction = False if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: - self._askUserToKeepOrClearCurrentSettings() + # Show the keep/discard user settings dialog + has_user_interaction = Application.getInstance().discardOrKeepProfileChanges() - self.activeQualityChanged.emit() + # If there is no interaction with the user (it means the dialog showing "keep" or "discard" was not shown) + # because either there are not user changes or because the used already decided to always keep or discard, + # then the quality instance container is replaced, in which case, the activeQualityChanged signal is emitted. + if not has_user_interaction: + self._executeDelayedActiveContainerStackChanges() + + ## Used to update material and variant in the active container stack with a delay. + # This delay prevents the stack from triggering a lot of signals (eventually resulting in slicing) + # before the user decided to keep or discard any of their changes using the dialog. + # The Application.onDiscardOrKeepProfileChangesClosed signal triggers this method. + def _executeDelayedActiveContainerStackChanges(self): + if self._new_variant_container is not None: + self._active_container_stack.variant = self._new_variant_container + self._new_variant_container = None + + if self._new_material_container is not None: + self._active_container_stack.material = self._new_material_container + self._new_material_container = None + + # apply the new quality to all stacks + if self._new_quality_containers: + for new_quality in self._new_quality_containers: + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality"], postpone_emit = True) + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality_changes"], postpone_emit = True) + + for new_quality in self._new_quality_containers: + new_quality["stack"].nameChanged.connect(self._onQualityNameChanged) + new_quality["stack"].sendPostponedEmits() # Send the signals that were postponed in _replaceQualityOrQualityChangesInStack + + self._new_quality_containers.clear() + + ## Cancel set changes for material and variant in the active container stack. + # Used for ignoring any changes when switching between printers (setActiveMachine) + def _cancelDelayedActiveContainerStackChanges(self): + self._new_material_container = None + self._new_variant_container = None ## Determine the quality and quality changes settings for the current machine for a quality name. # # \param quality_name \type{str} the name of the quality. # \return \type{List[Dict]} with keys "stack", "quality" and "quality_changes". @UM.FlameProfiler.profile - def determineQualityAndQualityChangesForQualityType(self, quality_type: str): + def determineQualityAndQualityChangesForQualityType(self, quality_type: str) -> List[Dict[str, Union["CuraContainerStack", InstanceContainer]]]: quality_manager = QualityManager.getInstance() result = [] empty_quality_changes = self._empty_quality_changes_container @@ -871,8 +957,14 @@ class MachineManager(QObject): for stack in stacks: material = stack.material + + # TODO: fix this + if self._new_material_container and stack.getId() == self._active_container_stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) - if not quality: #No quality profile is found for this quality type. + if not quality: + # No quality profile is found for this quality type. quality = self._empty_quality_container result.append({"stack": stack, "quality": quality, "quality_changes": empty_quality_changes}) @@ -891,7 +983,7 @@ class MachineManager(QObject): # # \param quality_changes_name \type{str} the name of the quality changes. # \return \type{List[Dict]} with keys "stack", "quality" and "quality_changes". - def _determineQualityAndQualityChangesForQualityChanges(self, quality_changes_name: str): + def _determineQualityAndQualityChangesForQualityChanges(self, quality_changes_name: str) -> Optional[List[Dict[str, Union["CuraContainerStack", InstanceContainer]]]]: result = [] quality_manager = QualityManager.getInstance() @@ -907,8 +999,12 @@ class MachineManager(QObject): else: Logger.log("e", "Could not find the global quality changes container with name %s", quality_changes_name) return None + material = global_container_stack.material + if self._new_material_container and self._active_container_stack.getId() == global_container_stack.getId(): + material = self._new_material_container + # For the global stack, find a quality which matches the quality_type in # the quality changes profile and also satisfies any material constraints. quality_type = global_quality_changes.getMetaDataEntry("quality_type") @@ -935,6 +1031,10 @@ class MachineManager(QObject): quality_changes = self._empty_quality_changes_container material = stack.material + + if self._new_material_container and self._active_container_stack.getId() == stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) if not quality: #No quality profile found for this quality type. quality = self._empty_quality_container @@ -957,7 +1057,7 @@ class MachineManager(QObject): if container_type == "quality": stack.quality.nameChanged.disconnect(self._onQualityNameChanged) stack.setQuality(container, postpone_emit = postpone_emit) - stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged) + stack.quality.nameChanged.connect(self._onQualityNameChanged) elif container_type == "quality_changes" or container_type is None: # If the container is an empty container, we need to change the quality_changes. # Quality can never be set to empty. @@ -966,9 +1066,6 @@ class MachineManager(QObject): stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged) self._onQualityNameChanged() - def _askUserToKeepOrClearCurrentSettings(self): - Application.getInstance().discardOrKeepProfileChanges() - @pyqtProperty(str, notify = activeVariantChanged) def activeVariantName(self) -> str: if self._active_container_stack: @@ -1075,7 +1172,7 @@ class MachineManager(QObject): machine_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") other_machine_stacks = [s for s in machine_stacks if s.getId() != machine_id] if other_machine_stacks: - Application.getInstance().setGlobalContainerStack(other_machine_stacks[0]) + self.setActiveMachine(other_machine_stacks[0].getId()) ExtruderManager.getInstance().removeMachineExtruders(machine_id) containers = ContainerRegistry.getInstance().findInstanceContainers(type = "user", machine = machine_id) @@ -1128,7 +1225,7 @@ class MachineManager(QObject): return MachineManager() @deprecated("Use ExtruderStack.material = ... and it won't be necessary", "2.7") - def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None): + def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None) -> InstanceContainer: if not definition.getMetaDataEntry("has_materials"): return self._empty_material_container @@ -1174,7 +1271,7 @@ class MachineManager(QObject): def _onQualityNameChanged(self): self.activeQualityChanged.emit() - def _getContainerChangedSignals(self): + def _getContainerChangedSignals(self) -> List[Signal]: stacks = ExtruderManager.getInstance().getActiveExtruderStacks() stacks.append(self._global_container_stack) return [ s.containersChanged for s in stacks ] diff --git a/cura/Settings/MachineNameValidator.py b/cura/Settings/MachineNameValidator.py index dcb83b7a4c..19b29feac4 100644 --- a/cura/Settings/MachineNameValidator.py +++ b/cura/Settings/MachineNameValidator.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import pyqtSlot, pyqtProperty, QObject, pyqtSignal, QRegExp from PyQt5.QtGui import QValidator diff --git a/cura/Settings/MaterialManager.py b/cura/Settings/MaterialManager.py index 5640d7af38..80d2723438 100644 --- a/cura/Settings/MaterialManager.py +++ b/cura/Settings/MaterialManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSlot #To expose data to QML. @@ -21,7 +21,7 @@ class MaterialManager(QObject): #Material diameter changed warning message. self._material_diameter_warning_message = Message(catalog.i18nc("@info:status Has a cancel button next to it.", - "The selected material diameter causes the material to become incompatible with the current printer.")) + "The selected material diameter causes the material to become incompatible with the current printer."), title = catalog.i18nc("@info:title", "Incompatible Material")) self._material_diameter_warning_message.addAction("Undo", catalog.i18nc("@action:button", "Undo"), None, catalog.i18nc("@action", "Undo changing the material diameter.")) self._material_diameter_warning_message.actionTriggered.connect(self._materialWarningMessageAction) diff --git a/cura/Settings/MaterialSettingsVisibilityHandler.py b/cura/Settings/MaterialSettingsVisibilityHandler.py index a533a0cabd..5b6050d2c0 100644 --- a/cura/Settings/MaterialSettingsVisibilityHandler.py +++ b/cura/Settings/MaterialSettingsVisibilityHandler.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import UM.Settings.Models.SettingVisibilityHandler @@ -11,6 +11,7 @@ class MaterialSettingsVisibilityHandler(UM.Settings.Models.SettingVisibilityHand "default_material_print_temperature", "material_bed_temperature", "material_standby_temperature", + #"material_flow_temp_graph", "cool_fan_speed", "retraction_amount", "retraction_speed", diff --git a/cura/Settings/MaterialsModel.py b/cura/Settings/MaterialsModel.py index 75eeb6c281..bee9307b53 100644 --- a/cura/Settings/MaterialsModel.py +++ b/cura/Settings/MaterialsModel.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Settings.ContainerRegistry import ContainerRegistry #To listen for changes to the materials. from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel #We're extending this class. diff --git a/cura/Settings/PerObjectContainerStack.py b/cura/Settings/PerObjectContainerStack.py new file mode 100644 index 0000000000..6c54ed46d5 --- /dev/null +++ b/cura/Settings/PerObjectContainerStack.py @@ -0,0 +1,65 @@ +from typing import Any, Optional + +from UM.Application import Application +from UM.Decorators import override +from UM.Settings.Interfaces import PropertyEvaluationContext +from UM.Settings.ContainerStack import ContainerStack +from UM.Settings.SettingInstance import InstanceState + + +class PerObjectContainerStack(ContainerStack): + + @override(ContainerStack) + def getProperty(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> Any: + if context is None: + context = PropertyEvaluationContext() + context.pushContainer(self) + + global_stack = Application.getInstance().getGlobalContainerStack() + + # Return the user defined value if present, otherwise, evaluate the value according to the default routine. + if self.getContainer(0).hasProperty(key, property_name): + if self.getContainer(0)._instances[key].state == InstanceState.User: + result = super().getProperty(key, property_name, context) + context.popContainer() + return result + + # Handle the "limit_to_extruder" property. + limit_to_extruder = super().getProperty(key, "limit_to_extruder", context) + if limit_to_extruder is not None: + limit_to_extruder = str(limit_to_extruder) + + # if this stack has the limit_to_extruder "not overriden", use the original limit_to_extruder as the current + # limit_to_extruder, so the values retrieved will be from the perspective of the original limit_to_extruder + # stack. + if limit_to_extruder == "-1": + if "original_limit_to_extruder" in context.context: + limit_to_extruder = context.context["original_limit_to_extruder"] + + if limit_to_extruder is not None and limit_to_extruder != "-1" and limit_to_extruder in global_stack.extruders: + # set the original limit_to_extruder if this is the first stack that has a non-overriden limit_to_extruder + if "original_limit_to_extruder" not in context.context: + context.context["original_limit_to_extruder"] = limit_to_extruder + + if super().getProperty(key, "settable_per_extruder", context): + result = global_stack.extruders[str(limit_to_extruder)].getProperty(key, property_name, context) + if result is not None: + context.popContainer() + return result + + result = super().getProperty(key, property_name, context) + context.popContainer() + return result + + @override(ContainerStack) + def setNextStack(self, stack: ContainerStack): + super().setNextStack(stack) + + # trigger signal to re-evaluate all default settings + for key, instance in self.getContainer(0)._instances.items(): + # only evaluate default settings + if instance.state != InstanceState.Default: + continue + + self._collectPropertyChanges(key, "value") + self._emitCollectedPropertyChanges() diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 545f44401a..6353d3ce84 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -1,5 +1,7 @@ -# Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from collections import OrderedDict from PyQt5.QtCore import Qt @@ -10,14 +12,19 @@ from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager from cura.Settings.ExtruderManager import ExtruderManager + ## QML Model for listing the current list of valid quality profiles. # class ProfilesModel(InstanceContainersModel): LayerHeightRole = Qt.UserRole + 1001 + LayerHeightWithoutUnitRole = Qt.UserRole + 1002 + AvailableRole = Qt.UserRole + 1003 def __init__(self, parent = None): super().__init__(parent) self.addRoleName(self.LayerHeightRole, "layer_height") + self.addRoleName(self.LayerHeightWithoutUnitRole, "layer_height_without_unit") + self.addRoleName(self.AvailableRole, "available") Application.getInstance().globalContainerStackChanged.connect(self._update) @@ -47,26 +54,75 @@ class ProfilesModel(InstanceContainersModel): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack is None: return [] + global_stack_definition = global_container_stack.getBottom() - # Get the list of extruders and place the selected extruder at the front of the list. + # Get the list of extruders and place the selected extruder at the front of the list. extruder_manager = ExtruderManager.getInstance() active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = extruder_manager.getActiveExtruderStacks() + materials = [global_container_stack.material] + if active_extruder in extruder_stacks: extruder_stacks.remove(active_extruder) extruder_stacks = [active_extruder] + extruder_stacks + materials = [extruder.material for extruder in extruder_stacks] - # Fetch the list of useable qualities across all extruders. + # Fetch the list of usable qualities across all extruders. # The actual list of quality profiles come from the first extruder in the extruder list. - return QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - extruder_stacks) + result = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) + + # The usable quality types are set + quality_type_set = set([x.getMetaDataEntry("quality_type") for x in result]) + + # Fetch all qualities available for this machine and the materials selected in extruders + all_qualities = QualityManager.getInstance().findAllQualitiesForMachineAndMaterials(global_stack_definition, materials) + + # If in the all qualities there is some of them that are not available due to incompatibility with materials + # we also add it so that they will appear in the slide quality bar. However in recomputeItems will be marked as + # not available so they will be shown in gray + for quality in all_qualities: + if quality.getMetaDataEntry("quality_type") not in quality_type_set: + result.append(quality) + + # if still profiles are found, add a single empty_quality ("Not supported") instance to the drop down list + if len(result) == 0: + # If not qualities are found we dynamically create a not supported container for this machine + material combination + not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + result.append(not_supported_container) + + return result ## Re-computes the items in this model, and adds the layer height role. def _recomputeItems(self): - #Some globals that we can re-use. + + # Some globals that we can re-use. global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack is None: return + + # Detecting if the machine has multiple extrusion + multiple_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + + # Get the list of extruders and place the selected extruder at the front of the list. + extruder_manager = ExtruderManager.getInstance() + active_extruder = extruder_manager.getActiveExtruderStack() + extruder_stacks = extruder_manager.getActiveExtruderStacks() + + if multiple_extrusion: + # Place the active extruder at the front of the list. + # This is a workaround checking if there is an active_extruder or not before moving it to the front of the list. + # Actually, when a printer has multiple extruders, should exist always an active_extruder. However, in some + # cases the active_extruder is still None. + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + new_extruder_stacks = [] + if active_extruder is not None: + new_extruder_stacks = [active_extruder] + extruder_stacks = new_extruder_stacks + extruder_stacks + + # Get a list of usable/available qualities for this machine and material + qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) + container_registry = ContainerRegistry.getInstance() machine_manager = Application.getInstance().getMachineManager() @@ -74,21 +130,67 @@ class ProfilesModel(InstanceContainersModel): if not unit: unit = "" + # group all quality items according to quality_types, so we know which profile suits the currently + # active machine and material, and later yield the right ones. + tmp_all_quality_items = OrderedDict() for item in super()._recomputeItems(): + profile = container_registry.findContainers(id=item["id"]) + quality_type = profile[0].getMetaDataEntry("quality_type") if profile else "" + + if quality_type not in tmp_all_quality_items: + tmp_all_quality_items[quality_type] = {"suitable_container": None, "all_containers": []} + + tmp_all_quality_items[quality_type]["all_containers"].append(item) + if tmp_all_quality_items[quality_type]["suitable_container"] is None: + tmp_all_quality_items[quality_type]["suitable_container"] = item + + # reverse the ordering (finest first, coarsest last) + all_quality_items = OrderedDict() + for key in reversed(tmp_all_quality_items.keys()): + all_quality_items[key] = tmp_all_quality_items[key] + + # First the suitable containers are set in the model + containers = [] + for data_item in all_quality_items.values(): + suitable_item = data_item["suitable_container"] + if suitable_item is not None: + containers.append(suitable_item) + + # Once the suitable containers are collected, the rest of the containers are appended + for data_item in all_quality_items.values(): + for item in data_item["all_containers"]: + if item not in containers: + containers.append(item) + + # Now all the containers are set + for item in containers: profile = container_registry.findContainers(id = item["id"]) + + # When for some reason there is no profile container in the registry if not profile: - item["layer_height"] = "" #Can't update a profile that is unknown. + self._setItemLayerHeight(item, "", "") + item["available"] = False yield item continue - #Easy case: This profile defines its own layer height. profile = profile[0] - if profile.hasProperty("layer_height", "value"): - item["layer_height"] = str(profile.getProperty("layer_height", "value")) + unit + + # When there is a profile but it's an empty quality should. It's shown in the list (they are "Not Supported" profiles) + if profile.getId() == "empty_quality": + self._setItemLayerHeight(item, "", "") + item["available"] = True yield item continue - #Quality-changes profile that has no value for layer height. Get the corresponding quality profile and ask that profile. + item["available"] = profile in qualities + + # Easy case: This profile defines its own layer height. + if profile.hasProperty("layer_height", "value"): + self._setItemLayerHeight(item, profile.getProperty("layer_height", "value"), unit) + yield item + continue + + # Quality-changes profile that has no value for layer height. Get the corresponding quality profile and ask that profile. quality_type = profile.getMetaDataEntry("quality_type", None) if quality_type: quality_results = machine_manager.determineQualityAndQualityChangesForQualityType(quality_type) @@ -96,21 +198,26 @@ class ProfilesModel(InstanceContainersModel): if quality_result["stack"] is global_container_stack: quality = quality_result["quality"] break - else: #No global container stack in the results: + else: + # No global container stack in the results: if quality_results: - quality = quality_results[0]["quality"] #Take any of the extruders. + quality = quality_results[0]["quality"] # Take any of the extruders. else: quality = None if quality and quality.hasProperty("layer_height", "value"): - item["layer_height"] = str(quality.getProperty("layer_height", "value")) + unit + self._setItemLayerHeight(item, quality.getProperty("layer_height", "value"), unit) yield item continue - #Quality has no value for layer height either. Get the layer height from somewhere lower in the stack. + # Quality has no value for layer height either. Get the layer height from somewhere lower in the stack. skip_until_container = global_container_stack.material if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No material in stack. skip_until_container = global_container_stack.variant if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No variant in stack. skip_until_container = global_container_stack.getBottom() - item["layer_height"] = str(global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId())) + unit #Fall through to the currently loaded material. + self._setItemLayerHeight(item, global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId()), unit) # Fall through to the currently loaded material. yield item + + def _setItemLayerHeight(self, item, value, unit): + item["layer_height"] = str(value) + unit + item["layer_height_without_unit"] = str(value) diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index b6ac3fb6d0..9d7d913d5e 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from cura.QualityManager import QualityManager @@ -25,21 +25,44 @@ class QualityAndUserProfilesModel(ProfilesModel): machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.getBottom()) quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition) - # Get the list of extruders and place the selected extruder at the front of the list. + # Detecting if the machine has multiple extrusion + multiple_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + # Get the list of extruders extruder_manager = ExtruderManager.getInstance() active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = extruder_manager.getActiveExtruderStacks() - if active_extruder in extruder_stacks: - extruder_stacks.remove(active_extruder) - extruder_stacks = [active_extruder] + extruder_stacks + if multiple_extrusion: + # Place the active extruder at the front of the list. + # This is a workaround checking if there is an active_extruder or not before moving it to the front of the list. + # Actually, when a printer has multiple extruders, should exist always an active_extruder. However, in some + # cases the active_extruder is still None. + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + new_extruder_stacks = [] + if active_extruder is not None: + new_extruder_stacks = [active_extruder] + else: + # if there is no active extruder, use the first one in the active extruder stacks + active_extruder = extruder_stacks[0] + extruder_stacks = new_extruder_stacks + extruder_stacks # Fetch the list of useable qualities across all extruders. # The actual list of quality profiles come from the first extruder in the extruder list. - quality_list = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, + quality_list = quality_manager.findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) # Filter the quality_change by the list of available quality_types quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list]) - filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") is None] + + if multiple_extrusion: + # If the printer has multiple extruders then quality changes related to the current extruder are kept + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and + qc.getMetaDataEntry("extruder") is not None and + (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or + qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())] + else: + # If not, the quality changes of the global stack are selected + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and + qc.getMetaDataEntry("extruder") is None] return quality_list + filtered_quality_changes diff --git a/cura/Settings/QualitySettingsModel.py b/cura/Settings/QualitySettingsModel.py index a3dd6925e5..2ab4e2a9b5 100644 --- a/cura/Settings/QualitySettingsModel.py +++ b/cura/Settings/QualitySettingsModel.py @@ -1,11 +1,11 @@ -# Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. import collections from PyQt5.QtCore import pyqtProperty, pyqtSignal, Qt -import UM.Logger +from UM.Logger import Logger import UM.Qt from UM.Application import Application from UM.Settings.ContainerRegistry import ContainerRegistry @@ -97,7 +97,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): containers = self._container_registry.findInstanceContainers(id = self._quality_id) if not containers: - UM.Logger.log("w", "Could not find a quality container with id %s", self._quality_id) + Logger.log("w", "Could not find a quality container with id %s", self._quality_id) return quality_container = None @@ -116,7 +116,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): quality_container = self._container_registry.findInstanceContainers(**criteria) if not quality_container: - UM.Logger.log("w", "Could not find a quality container matching quality changes %s", quality_changes_container.getId()) + Logger.log("w", "Could not find a quality container matching quality changes %s", quality_changes_container.getId()) return quality_container = quality_container[0] @@ -160,7 +160,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): containers = self._container_registry.findInstanceContainers(**criteria) if not containers: - UM.Logger.log("w", "Could not find any quality containers matching the search criteria %s" % str(criteria)) + Logger.log("w", "Could not find any quality containers matching the search criteria %s" % str(criteria)) return if quality_changes_container: diff --git a/cura/Settings/SetObjectExtruderOperation.py b/cura/Settings/SetObjectExtruderOperation.py index 31c996529a..25c1c6b759 100644 --- a/cura/Settings/SetObjectExtruderOperation.py +++ b/cura/Settings/SetObjectExtruderOperation.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Scene.SceneNode import SceneNode from UM.Operations.Operation import Operation diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index d3a1655889..8c9f5b20d6 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal from UM.FlameProfiler import pyqtSlot diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index 503e0b2490..4e0893a35f 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -1,17 +1,17 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import copy from UM.Scene.SceneNodeDecorator import SceneNodeDecorator from UM.Signal import Signal, signalemitter -from UM.Settings.ContainerStack import ContainerStack from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Logger import Logger from UM.Application import Application +from cura.Settings.PerObjectContainerStack import PerObjectContainerStack from cura.Settings.ExtruderManager import ExtruderManager ## A decorator that adds a container stack to a Node. This stack should be queried for all settings regarding @@ -24,7 +24,7 @@ class SettingOverrideDecorator(SceneNodeDecorator): def __init__(self): super().__init__() - self._stack = ContainerStack(stack_id = id(self)) + self._stack = PerObjectContainerStack(stack_id = id(self)) self._stack.setDirty(False) # This stack does not need to be saved. self._stack.addContainer(InstanceContainer(container_id = "SettingOverrideInstanceContainer")) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py new file mode 100644 index 0000000000..867a21702c --- /dev/null +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -0,0 +1,92 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty + +from UM.Application import Application + + +class SimpleModeSettingsManager(QObject): + + def __init__(self, parent = None): + super().__init__(parent) + + self._machine_manager = Application.getInstance().getMachineManager() + self._is_profile_customized = False # True when default profile has user changes + self._is_profile_user_created = False # True when profile was custom created by user + + self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) + self._machine_manager.activeQualityChanged.connect(self._updateIsProfileUserCreated) + + # update on create as the activeQualityChanged signal is emitted before this manager is created when Cura starts + self._updateIsProfileCustomized() + self._updateIsProfileUserCreated() + + isProfileCustomizedChanged = pyqtSignal() + isProfileUserCreatedChanged = pyqtSignal() + + @pyqtProperty(bool, notify = isProfileCustomizedChanged) + def isProfileCustomized(self): + return self._is_profile_customized + + def _updateIsProfileCustomized(self): + user_setting_keys = set() + + if not self._machine_manager.activeMachine: + return False + + global_stack = self._machine_manager.activeMachine + + # check user settings in the global stack + user_setting_keys.update(set(global_stack.userChanges.getAllKeys())) + + # check user settings in the extruder stacks + if global_stack.extruders: + for extruder_stack in global_stack.extruders.values(): + user_setting_keys.update(set(extruder_stack.userChanges.getAllKeys())) + + # remove settings that are visible in recommended (we don't show the reset button for those) + for skip_key in self.__ignored_custom_setting_keys: + if skip_key in user_setting_keys: + user_setting_keys.remove(skip_key) + + has_customized_user_settings = len(user_setting_keys) > 0 + + if has_customized_user_settings != self._is_profile_customized: + self._is_profile_customized = has_customized_user_settings + self.isProfileCustomizedChanged.emit() + + @pyqtProperty(bool, notify = isProfileUserCreatedChanged) + def isProfileUserCreated(self): + return self._is_profile_user_created + + def _updateIsProfileUserCreated(self): + quality_changes_keys = set() + + if not self._machine_manager.activeMachine: + return False + + global_stack = self._machine_manager.activeMachine + + # check quality changes settings in the global stack + quality_changes_keys.update(set(global_stack.qualityChanges.getAllKeys())) + + # check quality changes settings in the extruder stacks + if global_stack.extruders: + for extruder_stack in global_stack.extruders.values(): + quality_changes_keys.update(set(extruder_stack.qualityChanges.getAllKeys())) + + # check if the qualityChanges container is not empty (meaning it is a user created profile) + has_quality_changes = len(quality_changes_keys) > 0 + + if has_quality_changes != self._is_profile_user_created: + self._is_profile_user_created = has_quality_changes + self.isProfileUserCreatedChanged.emit() + + # These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been + # changed, we consider it as a user customized profile in the Simple ("Recommended") Mode. + __ignored_custom_setting_keys = ["support_enable", + "infill_sparse_density", + "gradual_infill_steps", + "adhesion_type", + "support_extruder_nr"] diff --git a/cura/Settings/UserChangesModel.py b/cura/Settings/UserChangesModel.py index 8b61186650..93274d61c9 100644 --- a/cura/Settings/UserChangesModel.py +++ b/cura/Settings/UserChangesModel.py @@ -6,6 +6,7 @@ from cura.Settings.ExtruderManager import ExtruderManager from UM.Settings.ContainerRegistry import ContainerRegistry from UM.i18n import i18nCatalog from UM.Settings.SettingFunction import SettingFunction +from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext from collections import OrderedDict import os @@ -66,8 +67,15 @@ class UserChangesModel(ListModel): containers.extend(latest_stack.getContainers()) latest_stack = latest_stack.getNextStack() - # Drop the user container. + # Override "getExtruderValue" with "getDefaultExtruderValue" so we can get the default values user_changes = containers.pop(0) + default_value_resolve_context = PropertyEvaluationContext(stack) + default_value_resolve_context.context["evaluate_from_container_index"] = 1 # skip the user settings container + default_value_resolve_context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } for setting_key in user_changes.getAllKeys(): original_value = None @@ -90,16 +98,16 @@ class UserChangesModel(ListModel): for container in containers: if stack == global_stack: - resolve = global_stack.getProperty(setting_key, "resolve") + resolve = global_stack.getProperty(setting_key, "resolve", default_value_resolve_context) if resolve is not None: original_value = resolve break - original_value = container.getProperty(setting_key, "value") + original_value = container.getProperty(setting_key, "value", default_value_resolve_context) # If a value is a function, ensure it's called with the stack it's in. if isinstance(original_value, SettingFunction): - original_value = original_value(stack) + original_value = original_value(stack, default_value_resolve_context) if original_value is not None: break diff --git a/cura/Settings/UserProfilesModel.py b/cura/Settings/UserProfilesModel.py index 07669422d2..aa815ef4aa 100644 --- a/cura/Settings/UserProfilesModel.py +++ b/cura/Settings/UserProfilesModel.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from cura.QualityManager import QualityManager @@ -25,17 +25,44 @@ class UserProfilesModel(ProfilesModel): machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.getBottom()) quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition) - # Fetch the list of qualities - quality_list = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - ExtruderManager.getInstance().getActiveExtruderStacks()) + # Detecting if the machine has multiple extrusion + multiple_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + # Get the list of extruders and place the selected extruder at the front of the list. + extruder_manager = ExtruderManager.getInstance() + active_extruder = extruder_manager.getActiveExtruderStack() + extruder_stacks = extruder_manager.getActiveExtruderStacks() + if multiple_extrusion: + # Place the active extruder at the front of the list. + # This is a workaround checking if there is an active_extruder or not before moving it to the front of the list. + # Actually, when a printer has multiple extruders, should exist always an active_extruder. However, in some + # cases the active_extruder is still None. + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + new_extruder_stacks = [] + if active_extruder is not None: + new_extruder_stacks = [active_extruder] + else: + # if there is no active extruder, use the first one in the active extruder stacks + active_extruder = extruder_stacks[0] + extruder_stacks = new_extruder_stacks + extruder_stacks + + # Fetch the list of useable qualities across all extruders. + # The actual list of quality profiles come from the first extruder in the extruder list. + quality_list = quality_manager.findAllUsableQualitiesForMachineAndExtruders(global_container_stack, + extruder_stacks) # Filter the quality_change by the list of available quality_types quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list]) - filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set] - #Only display the global quality changes. - #Otherwise you get multiple copies of every quality changes profile. - #The actual profile switching goes by profile name (not ID), and as long as the names are consistent, switching to any of the profiles will cause all stacks to switch. - filtered_quality_changes = list(filter(lambda quality_changes: quality_changes.getMetaDataEntry("extruder") is None, filtered_quality_changes)) + if multiple_extrusion: + # If the printer has multiple extruders then quality changes related to the current extruder are kept + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and + qc.getMetaDataEntry("extruder") is not None and + (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or + qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())] + else: + # If not, the quality changes of the global stack are selected + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and + qc.getMetaDataEntry("extruder") is None] return filtered_quality_changes diff --git a/cura/Settings/__init__.py b/cura/Settings/__init__.py index c00ee15ebf..4713b1c1d0 100644 --- a/cura/Settings/__init__.py +++ b/cura/Settings/__init__.py @@ -1,2 +1,2 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. diff --git a/cura/ShapeArray.py b/cura/ShapeArray.py index 95d0201c38..73fc2023e3 100755 --- a/cura/ShapeArray.py +++ b/cura/ShapeArray.py @@ -46,6 +46,10 @@ class ShapeArray: # For one_at_a_time printing you need the convex hull head. hull_head_verts = node.callDecoration("getConvexHullHead") or hull_verts + # If a model is to small then it will not contain any points + if not hull_verts.getPoints().any(): + return None, None + offset_verts = hull_head_verts.getMinkowskiHull(Polygon.approximatedCircle(min_offset)) offset_points = copy.deepcopy(offset_verts._points) # x, y offset_points[:, 0] = numpy.add(offset_points[:, 0], -transform_x) diff --git a/cura_app.py b/cura_app.py index 1d8867f1f4..d725bc1200 100755 --- a/cura_app.py +++ b/cura_app.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os import sys import platform @@ -41,8 +41,9 @@ if "PYTHONPATH" in os.environ.keys(): # If PYTHONPATH is u sys.path.insert(1, PATH_real) # Insert it at 1 after os.curdir, which is 0. def exceptHook(hook_type, value, traceback): - import cura.CrashHandler - cura.CrashHandler.show(hook_type, value, traceback) + from cura.CrashHandler import CrashHandler + _crash_handler = CrashHandler(hook_type, value, traceback) + _crash_handler.show() sys.excepthook = exceptHook @@ -54,8 +55,17 @@ import Arcus #@UnusedImport import cura.CuraApplication import cura.Settings.CuraContainerRegistry +def get_cura_dir_path(): + if Platform.isWindows(): + return os.path.expanduser("~/AppData/Local/cura/") + elif Platform.isLinux(): + return os.path.expanduser("~/.local/share/cura") + elif Platform.isOSX(): + return os.path.expanduser("~/Library/Logs/cura") + + if hasattr(sys, "frozen"): - dirpath = os.path.expanduser("~/AppData/Local/cura/") + dirpath = get_cura_dir_path() os.makedirs(dirpath, exist_ok = True) sys.stdout = open(os.path.join(dirpath, "stdout.log"), "w") sys.stderr = open(os.path.join(dirpath, "stderr.log"), "w") diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index d473ecaa8b..a34bf771d7 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path import zipfile @@ -17,6 +17,7 @@ from cura.Settings.ExtruderManager import ExtruderManager from cura.QualityManager import QualityManager from UM.Scene.SceneNode import SceneNode from cura.SliceableObjectDecorator import SliceableObjectDecorator +from cura.ZOffsetDecorator import ZOffsetDecorator MYPY = False @@ -73,9 +74,8 @@ class ThreeMFReader(MeshReader): return temp_mat - - ## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium scenenode. - # \returns Uranium Scenen node. + ## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium scene node. + # \returns Uranium scene node. def _convertSavitarNodeToUMNode(self, savitar_node): um_node = SceneNode() transformation = self._createMatrixFromTransformationString(savitar_node.getTransformation()) @@ -196,7 +196,7 @@ class ThreeMFReader(MeshReader): translation_matrix.setByTranslation(translation_vector) transformation_matrix.multiply(translation_matrix) - # Third step: 3MF also defines a unit, wheras Cura always assumes mm. + # Third step: 3MF also defines a unit, whereas Cura always assumes mm. scale_matrix = Matrix() scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit)) transformation_matrix.multiply(scale_matrix) @@ -204,6 +204,13 @@ class ThreeMFReader(MeshReader): # Pre multiply the transformation with the loaded transformation, so the data is handled correctly. um_node.setTransformation(um_node.getLocalTransformation().preMultiply(transformation_matrix)) + # Check if the model is positioned below the build plate and honor that when loading project files. + if um_node.getMeshData() is not None: + minimum_z_value = um_node.getMeshData().getExtents(um_node.getWorldTransformation()).minimum.y # y is z in transformation coordinates + if minimum_z_value < 0: + um_node.addDecorator(ZOffsetDecorator()) + um_node.callDecoration("setZOffset", minimum_z_value) + result.append(um_node) except Exception: diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index fe035e61a3..28d12bf2d5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Workspace.WorkspaceReader import WorkspaceReader from UM.Application import Application @@ -17,14 +17,18 @@ from .WorkspaceDialog import WorkspaceDialog import xml.etree.ElementTree as ET +from cura.Settings.CuraStackBuilder import CuraStackBuilder from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderStack import ExtruderStack from cura.Settings.GlobalStack import GlobalStack +from cura.Settings.CuraContainerStack import _ContainerIndexes +from cura.QualityManager import QualityManager from configparser import ConfigParser import zipfile import io import configparser +import os i18n_catalog = i18nCatalog("cura") @@ -221,9 +225,12 @@ class ThreeMFWorkspaceReader(WorkspaceReader): elif container_type == "definition_changes": definition_name = instance_container.getName() num_settings_overriden_by_definition_changes += len(instance_container._instances) - definition_changes = self._container_registry.findDefinitionContainers(id = container_id) - containers_found_dict["definition_changes"] = True + # Check if definition changes already exists. + definition_changes = self._container_registry.findInstanceContainers(id = container_id) + # Check if there is any difference the loaded settings from the project file and the settings in Cura. if definition_changes: + containers_found_dict["definition_changes"] = True + # Check if there really is a conflict by comparing the values if definition_changes[0] != instance_container: definition_changes_conflict = True elif container_type == "quality": @@ -298,11 +305,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): break num_visible_settings = 0 + has_visible_settings_string = False try: temp_preferences = Preferences() - temp_preferences.readFromFile(io.TextIOWrapper(archive.open("Cura/preferences.cfg"))) # We need to wrap it, else the archive parser breaks. + serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") + temp_preferences.deserialize(serialized) visible_settings_string = temp_preferences.getValue("general/visible_settings") + has_visible_settings_string = visible_settings_string is not None if visible_settings_string is not None: num_visible_settings = len(visible_settings_string.split(";")) active_mode = temp_preferences.getValue("cura/active_mode") @@ -329,6 +339,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setQualityChangesConflict(quality_changes_conflict) self._dialog.setDefinitionChangesConflict(definition_changes_conflict) self._dialog.setMaterialConflict(material_conflict) + self._dialog.setHasVisibleSettingsField(has_visible_settings_string) self._dialog.setNumVisibleSettings(num_visible_settings) self._dialog.setQualityName(quality_name) self._dialog.setQualityType(quality_type) @@ -355,7 +366,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # - new: create a new container # - override: override the existing container # - None: There is no conflict, which means containers with the same IDs may or may not be there already. - # If there is an existing container, there is no conflict between the them, and default to "override" + # If there is an existing container, there is no conflict between them, and default to "override" # If there is no existing container, default to "new" # # Default values @@ -368,7 +379,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): ## Overrides an ExtruderStack in the given GlobalStack and returns the new ExtruderStack. def _overrideExtruderStack(self, global_stack, extruder_file_content): - # get extruder position first + # Get extruder position first extruder_config = configparser.ConfigParser() extruder_config.read_string(extruder_file_content) if not extruder_config.has_option("metadata", "position"): @@ -376,10 +387,13 @@ class ThreeMFWorkspaceReader(WorkspaceReader): Logger.log("e", "Could not find 'metadata/position' in extruder stack file") raise RuntimeError(msg) extruder_position = extruder_config.get("metadata", "position") + try: + extruder_stack = global_stack.extruders[extruder_position] + except KeyError: + Logger.log("w", "Could not find the matching extruder stack to override for position %s", extruder_position) + return None - extruder_stack = global_stack.extruders[extruder_position] - - # override the given extruder stack + # Override the given extruder stack extruder_stack.deserialize(extruder_file_content) # return the new ExtruderStack @@ -400,7 +414,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Create a shadow copy of the preferences (we don't want all of the preferences, but we do want to re-use its # parsing code. temp_preferences = Preferences() - temp_preferences.readFromFile(io.TextIOWrapper(archive.open("Cura/preferences.cfg"))) # We need to wrap it, else the archive parser breaks. + serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") + temp_preferences.deserialize(serialized) # Copy a number of settings from the temp preferences to the global global_preferences = Preferences.getInstance() @@ -436,6 +451,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): global_stack_id_original = self._stripFileToId(global_stack_file) global_stack_id_new = global_stack_id_original + global_stack_name_original = self._getMachineNameFromSerializedStack(archive.open(global_stack_file).read().decode("utf-8")) + global_stack_name_new = global_stack_name_original global_stack_need_rename = False extruder_stack_id_map = {} # new and old ExtruderStack IDs map @@ -445,6 +462,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): global_stack_id_new = self.getNewId(global_stack_id_original) global_stack_need_rename = True + global_stack_name_new = self._container_registry.uniqueName(global_stack_name_original) + for each_extruder_stack_file in extruder_stack_files: old_container_id = self._stripFileToId(each_extruder_stack_file) new_container_id = old_container_id @@ -591,7 +610,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if self._resolve_strategies["machine"] == "new": # The machine is going to get a spiffy new name, so ensure that the id's of user settings match. old_extruder_id = instance_container.getMetaDataEntry("extruder", None) - if old_extruder_id: + # Note that in case of a quality_changes extruder means the definition id of the extruder stack + # For the user settings, it means the actual extruder stack id it's assigned to. + if old_extruder_id and old_extruder_id in extruder_stack_id_map: new_extruder_id = extruder_stack_id_map[old_extruder_id] instance_container.setMetaDataEntry("extruder", new_extruder_id) @@ -655,7 +676,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): stack.setMetaDataEntry("machine", global_stack_id_new) # Only machines need a new name, stacks may be non-unique - stack.setName(global_stack_id_new) + stack.setName(global_stack_name_new) container_stacks_added.append(stack) self._container_registry.addContainer(stack) @@ -664,6 +685,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): Logger.log("e", "Resolve strategy of %s for machine is not supported", self._resolve_strategies["machine"]) + # Create a new definition_changes container if it was empty + if stack.definitionChanges == self._container_registry.getEmptyInstanceContainer(): + stack.setDefinitionChanges(CuraStackBuilder.createDefinitionChangesContainer(stack, stack._id + "_settings")) global_stack = stack Job.yieldThread() except: @@ -673,6 +697,15 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._container_registry.removeContainer(container.getId()) return + # + # Use the number of extruders from the global stack instead of the number of extruder stacks this project file + # contains. The Custom FDM Printer can have multiple extruders, but the actual number of extruders in used is + # defined in the global stack. + # Because for single-extrusion machines, there won't be an extruder stack, so relying on the the extruder count + # in the global stack can avoid problems in those cases. + # + extruder_count_from_global_stack = global_stack.getProperty("machine_extruder_count", "value") + # -- # load extruder stack files try: @@ -681,8 +714,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader): extruder_file_content = archive.open(extruder_stack_file, "r").read().decode("utf-8") if self._resolve_strategies["machine"] == "override": - # deserialize new extruder stack over the current ones - stack = self._overrideExtruderStack(global_stack, extruder_file_content) + if global_stack.getProperty("machine_extruder_count", "value") > 1: + # deserialize new extruder stack over the current ones (if any) + stack = self._overrideExtruderStack(global_stack, extruder_file_content) + if stack is None: + continue elif self._resolve_strategies["machine"] == "new": new_id = extruder_stack_id_map[container_id] @@ -711,14 +747,43 @@ class ThreeMFWorkspaceReader(WorkspaceReader): else: Logger.log("w", "Unknown resolve strategy: %s", self._resolve_strategies["machine"]) - extruder_stacks.append(stack) + # Create a new definition_changes container if it was empty + if stack.definitionChanges == self._container_registry.getEmptyInstanceContainer(): + stack.setDefinitionChanges(CuraStackBuilder.createDefinitionChangesContainer(stack, stack._id + "_settings")) + if global_stack.getProperty("machine_extruder_count", "value") > 1: + extruder_stacks.append(stack) except: Logger.logException("w", "We failed to serialize the stack. Trying to clean up.") - # Something went really wrong. Try to remove any data that we added. + # Something went really wrong. Try to remove any data that we added. for container in containers_added: self._container_registry.removeContainer(container.getId()) return + # Check quality profiles to make sure that if one stack has the "not supported" quality profile, + # all others should have the same. + # + # This block code tries to fix the following problems in Cura 3.0 and earlier: + # 1. The upgrade script can rename all "Not Supported" quality profiles to "empty_quality", but it cannot fix + # the problem that the global stack the extruder stacks may have different quality profiles. The code + # below loops over all stacks and make sure that if there is one stack with "Not Supported" profile, the + # rest should also use the "Not Supported" profile. + # 2. In earlier versions (at least 2.7 and 3.0), a wrong quality profile could be assigned to a stack. For + # example, a UM3 can have a BB 0.8 variant with "aa04_pla_fast" quality profile enabled. To fix this, + # in the code below we also check the actual available quality profiles for the machine. + # + has_not_supported = False + for stack in [global_stack] + extruder_stacks: + if stack.quality.getId() == "empty_quality": + has_not_supported = True + break + if not has_not_supported: + available_quality = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_stack, extruder_stacks) + has_not_supported = not available_quality + if has_not_supported: + empty_quality_container = self._container_registry.findInstanceContainers(id = "empty_quality")[0] + for stack in [global_stack] + extruder_stacks: + stack.replaceContainer(_ContainerIndexes.Quality, empty_quality_container) + # # Replacing the old containers if resolve is "new". # When resolve is "new", some containers will get renamed, so all the other containers that reference to those @@ -795,36 +860,31 @@ class ThreeMFWorkspaceReader(WorkspaceReader): each_extruder_stack.definitionChanges = each_changes_container if self._resolve_strategies["material"] == "new": + # the actual material instance container can have an ID such as + # __ + # which cannot be determined immediately, so here we use a HACK to find the right new material + # instance ID: + # - get the old material IDs for all material + # - find the old material with the longest common prefix in ID, that's the old material + # - update the name by replacing the old prefix with the new + # - find the new material container and set it to the stack + old_to_new_material_dict = {} for each_material in material_containers: - old_material = global_stack.material - - # check if the old material container has been renamed to this material container ID - # if the container hasn't been renamed, we do nothing. - new_id = self._id_mapping.get(old_material.getId()) - if new_id is None or new_id != each_material.getId(): - continue - - if old_material.getId() in self._id_mapping: - global_stack.material = each_material + # find the material's old name + for old_id, new_id in self._id_mapping.items(): + if each_material.getId() == new_id: + old_to_new_material_dict[old_id] = each_material + break + # replace old material in global and extruder stacks with new + self._replaceStackMaterialWithNew(global_stack, old_to_new_material_dict) + if extruder_stacks: for each_extruder_stack in extruder_stacks: - old_material = each_extruder_stack.material - - # check if the old material container has been renamed to this material container ID - # if the container hasn't been renamed, we do nothing. - new_id = self._id_mapping.get(old_material.getId()) - if new_id is None or new_id != each_material.getId(): - continue - - if old_material.getId() in self._id_mapping: - each_extruder_stack.material = each_material + self._replaceStackMaterialWithNew(each_extruder_stack, old_to_new_material_dict) if extruder_stacks: for stack in extruder_stacks: ExtruderManager.getInstance().registerExtruder(stack, global_stack.getId()) - else: - # Machine has no extruders, but it needs to be registered with the extruder manager. - ExtruderManager.getInstance().registerExtruder(None, global_stack.getId()) Logger.log("d", "Workspace loading is notifying rest of the code of changes...") @@ -843,8 +903,68 @@ class ThreeMFWorkspaceReader(WorkspaceReader): nodes = self._3mf_mesh_reader.read(file_name) if nodes is None: nodes = [] + + base_file_name = os.path.basename(file_name) + if base_file_name.endswith(".curaproject.3mf"): + base_file_name = base_file_name[:base_file_name.rfind(".curaproject.3mf")] + Application.getInstance().projectFileLoaded.emit(base_file_name) return nodes + ## HACK: Replaces the material container in the given stack with a newly created material container. + # This function is used when the user chooses to resolve material conflicts by creating new ones. + def _replaceStackMaterialWithNew(self, stack, old_new_material_dict): + # The material containers in the project file are 'parent' material such as "generic_pla", + # but a material container used in a global/extruder stack is a 'child' material, + # such as "generic_pla_ultimaker3_AA_0.4", which can be formalised as the following: + # + # __ + # + # In the project loading, when a user chooses to resolve material conflicts by creating new ones, + # the old 'parent' material ID and the new 'parent' material ID are known, but not the child material IDs. + # In this case, the global stack and the extruder stacks need to use the newly created material, but the + # material containers they use are 'child' material. So, here, we need to find the right 'child' material for + # the stacks. + # + # This hack approach works as follows: + # - No matter there is a child material or not, the actual material we are looking for has the prefix + # "", which is the old material name. For the material in a stack, we know that the new + # material's ID will be "_blabla..", so we just need to replace the old material ID + # with the new one to get the new 'child' material. + # - Because the material containers have IDs such as "m #nn", if we use simple prefix matching, there can + # be a problem in the following scenario: + # - there are two materials in the project file, namely "m #1" and "m #11" + # - the child materials in use are for example: "m #1_um3_aa04", "m #11_um3_aa04" + # - if we only check for a simple prefix match, then "m #11_um3_aa04" will match with "m #1", but they + # are not the same material + # To avoid this, when doing the prefix matching, we use the result with the longest mactching prefix. + + # find the old material ID + old_material_id_in_stack = stack.material.getId() + best_matching_old_material_id = None + best_matching_old_meterial_prefix_length = -1 + for old_parent_material_id in old_new_material_dict: + if len(old_parent_material_id) < best_matching_old_meterial_prefix_length: + continue + if len(old_parent_material_id) <= len(old_material_id_in_stack): + if old_parent_material_id == old_material_id_in_stack[0:len(old_parent_material_id)]: + best_matching_old_meterial_prefix_length = len(old_parent_material_id) + best_matching_old_material_id = old_parent_material_id + + if best_matching_old_material_id is None: + Logger.log("w", "Cannot find any matching old material ID for stack [%s] material [%s]. Something can go wrong", + stack.getId(), old_material_id_in_stack) + return + + # find the new material container + new_material_id = old_new_material_dict[best_matching_old_material_id].getId() + old_material_id_in_stack[len(best_matching_old_material_id):] + new_material_containers = self._container_registry.findInstanceContainers(id = new_material_id, type = "material") + if not new_material_containers: + Logger.log("e", "Cannot find new material container [%s]", new_material_id) + return + + # replace the material in the given stack + stack.material = new_material_containers[0] + def _stripFileToId(self, file): mime_type = MimeTypeDatabase.getMimeTypeForFile(file) file = mime_type.stripExtension(file) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 9d6c70cf8b..151771b25d 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QUrl, pyqtSignal, QObject, pyqtProperty, QCoreApplication from UM.FlameProfiler import pyqtSlot @@ -26,7 +26,7 @@ class WorkspaceDialog(QObject): self._view = None self._qml_url = "WorkspaceDialog.qml" self._lock = threading.Lock() - self._default_strategy = "override" + self._default_strategy = None self._result = {"machine": self._default_strategy, "quality_changes": self._default_strategy, "definition_changes": self._default_strategy, @@ -38,6 +38,7 @@ class WorkspaceDialog(QObject): self._has_definition_changes_conflict = False self._has_machine_conflict = False self._has_material_conflict = False + self._has_visible_settings_field = False self._num_visible_settings = 0 self._num_user_settings = 0 self._active_mode = "" @@ -58,6 +59,7 @@ class WorkspaceDialog(QObject): numVisibleSettingsChanged = pyqtSignal() activeModeChanged = pyqtSignal() qualityNameChanged = pyqtSignal() + hasVisibleSettingsFieldChanged = pyqtSignal() numSettingsOverridenByQualityChangesChanged = pyqtSignal() qualityTypeChanged = pyqtSignal() machineNameChanged = pyqtSignal() @@ -167,6 +169,14 @@ class WorkspaceDialog(QObject): self._active_mode = i18n_catalog.i18nc("@title:tab", "Custom") self.activeModeChanged.emit() + @pyqtProperty(int, notify = hasVisibleSettingsFieldChanged) + def hasVisibleSettingsField(self): + return self._has_visible_settings_field + + def setHasVisibleSettingsField(self, has_visible_settings_field): + self._has_visible_settings_field = has_visible_settings_field + self.hasVisibleSettingsFieldChanged.emit() + @pyqtProperty(int, constant = True) def totalNumberOfSettings(self): return len(ContainerRegistry.getInstance().findDefinitionContainers(id="fdmprinter")[0].getAllKeys()) @@ -235,6 +245,14 @@ class WorkspaceDialog(QObject): self._result["definition_changes"] = None if "material" in self._result and not self._has_material_conflict: self._result["material"] = None + + # If the machine needs to be re-created, the definition_changes should also be re-created. + # If the machine strategy is None, it means that there is no name conflict with existing ones. In this case + # new definitions changes are created + if "machine" in self._result: + if self._result["machine"] == "new" or self._result["machine"] is None and self._result["definition_changes"] is None: + self._result["definition_changes"] = "new" + return self._result def _createViewFromQML(self): @@ -262,14 +280,28 @@ class WorkspaceDialog(QObject): @pyqtSlot() ## Used to notify the dialog so the lock can be released. def notifyClosed(self): - self._result = {} + self._result = {} # The result should be cleared before hide, because after it is released the main thread lock self._visible = False - self._lock.release() + try: + self._lock.release() + except: + pass def hide(self): self._visible = False - self._lock.release() self._view.hide() + try: + self._lock.release() + except: + pass + + @pyqtSlot(bool) + def _onVisibilityChanged(self, visible): + if not visible: + try: + self._lock.release() + except: + pass @pyqtSlot() def onOkButtonClicked(self): @@ -278,9 +310,9 @@ class WorkspaceDialog(QObject): @pyqtSlot() def onCancelButtonClicked(self): + self._result = {} self._view.hide() self.hide() - self._result = {} ## Block thread until the dialog is closed. def waitForClose(self): diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 05941530ca..826b488e02 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -10,13 +10,16 @@ import UM 1.1 as UM UM.Dialog { + id: base title: catalog.i18nc("@title:window", "Open Project") - width: 500 - height: 400 + minimumWidth: 500 * screenScaleFactor + minimumHeight: 450 * screenScaleFactor + width: minimumWidth + height: minimumHeight - property int comboboxHeight: 15 - property int spacerHeight: 10 + property int comboboxHeight: 15 * screenScaleFactor + property int spacerHeight: 10 * screenScaleFactor onClosing: manager.notifyClosed() onVisibleChanged: @@ -28,10 +31,11 @@ UM.Dialog materialResolveComboBox.currentIndex = 0 } } + Item { anchors.fill: parent - anchors.margins: 20 + anchors.margins: 20 * screenScaleFactor UM.I18nCatalog { @@ -59,7 +63,7 @@ UM.Dialog Column { anchors.fill: parent - spacing: 2 + spacing: 2 * screenScaleFactor Label { id: titleLabel @@ -327,6 +331,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + visible: manager.hasVisibleSettingsField Label { text: catalog.i18nc("@action:label", "Visible settings:") @@ -360,7 +365,7 @@ UM.Dialog Label { id: warningLabel - text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the buildplate") + text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") wrapMode: Text.Wrap } } @@ -373,9 +378,9 @@ UM.Dialog enabled: true anchors.bottom: parent.bottom anchors.right: ok_button.left - anchors.rightMargin:2 + anchors.rightMargin: 2 * screenScaleFactor } - Button + Button { id: ok_button text: catalog.i18nc("@action:button","Open"); @@ -384,4 +389,10 @@ UM.Dialog anchors.right: parent.right } } + + function reject() { + manager.onCancelButtonClicked(); + base.visible = false; + base.rejected(); + } } diff --git a/plugins/3MFReader/__init__.py b/plugins/3MFReader/__init__.py index 9ed15cf43f..9da54586a3 100644 --- a/plugins/3MFReader/__init__.py +++ b/plugins/3MFReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from typing import Dict import sys diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index f805936ab5..9c143f0057 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -1,12 +1,13 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.Application import Application from UM.Preferences import Preferences from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.ContainerStack import ContainerStack from cura.Settings.ExtruderManager import ExtruderManager import zipfile from io import StringIO -import copy import configparser @@ -44,9 +45,14 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._writeContainerToArchive(container, archive) # Write preferences to archive - preferences_file = zipfile.ZipInfo("Cura/preferences.cfg") + original_preferences = Preferences.getInstance() #Copy only the preferences that we use to the workspace. + temp_preferences = Preferences() + for preference in {"general/visible_settings", "cura/active_mode", "cura/categories_expanded"}: + temp_preferences.addPreference(preference, None) + temp_preferences.setValue(preference, original_preferences.getValue(preference)) preferences_string = StringIO() - Preferences.getInstance().writeToFile(preferences_string) + temp_preferences.writeToFile(preferences_string) + preferences_file = zipfile.ZipInfo("Cura/preferences.cfg") archive.writestr(preferences_file, preferences_string.getvalue()) # Save Cura version diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 34d47f527b..a764d30fac 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Mesh.MeshWriter import MeshWriter from UM.Math.Vector import Vector diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index 7395e54502..e779628f7e 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. import sys from UM.Logger import Logger diff --git a/plugins/AutoSave/AutoSave.py b/plugins/AutoSave/AutoSave.py index 2aa49e3da1..331f328f2d 100644 --- a/plugins/AutoSave/AutoSave.py +++ b/plugins/AutoSave/AutoSave.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QTimer diff --git a/plugins/AutoSave/__init__.py b/plugins/AutoSave/__init__.py index dbf39e08cf..d7ee0736a2 100644 --- a/plugins/AutoSave/__init__.py +++ b/plugins/AutoSave/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import AutoSave diff --git a/plugins/ChangeLogPlugin/ChangeLog.py b/plugins/ChangeLogPlugin/ChangeLog.py index 6fc3fd148c..a80779da50 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.py +++ b/plugins/ChangeLogPlugin/ChangeLog.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog from UM.Extension import Extension @@ -8,7 +8,6 @@ from UM.Application import Application from UM.PluginRegistry import PluginRegistry from UM.Version import Version -from PyQt5.QtQuick import QQuickView from PyQt5.QtQml import QQmlComponent, QQmlContext from PyQt5.QtCore import QUrl, pyqtSlot, QObject diff --git a/plugins/ChangeLogPlugin/ChangeLog.qml b/plugins/ChangeLogPlugin/ChangeLog.qml index c9d3eb32ba..512687f15a 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.qml +++ b/plugins/ChangeLogPlugin/ChangeLog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.3 diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 3e101919d4..d7d68e04a2 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,3 +1,93 @@ +[3.0.4] +*Bug fixes +- Fixed OpenGL issue that prevents Cura from starting. + +*License agreement on the first startup has been added + +[3.0.3] +*Bug fixes +- Add missing libraries for the MakePrintable plugin. + +[3.0.0] +*Faster start-up +Start-up speed has been cut in half compared to the previous version. + +*New color scheme +Color scheme has been updated to reflect Ultimaker Cura rebrand. + +*Updated UX design +The Ultimaker Cura logo has moved from the bottom to the top of the interface. Print status icons have been updated and repositioned. + +*Redesigned splash screen +A new splash screen on Ultimaker Cura startup has been added. + +*Top navigation bar improvements +The width of tab functionality changes accordingly to the word space (multilingual). + +*Print quality slider +A slider can now be used to control the quality profile in recommended mode. + +*Infill slider +Model infill can now be changed using a slider in recommended mode. + +*Changed layer view +Layer view icon, panel and slider have moved to top-right of interface. + +*Rasterized build plate +The build plate now shows graduations of 10 mm and 1 mm for easy model positioning. + +*Changed row of extruder buttons +Extruder tabs have become buttons and icons have been updated. + +*Add an "Export to Cura" button in SOLIDWORKS +SOLIDWORKS plugin can now be installed using an automatic installer. + +*Siemens NX macro +When a user updates models in Siemens NX and clicks the button, the updated models replace the models opened in Ultimaker Cura. + +*Skin removal width +Remove thin strips of skin from a model to prevent print head zigzagging, in turn preventing vibrations. + +*Skin expand distance +Cutting away skins on steep overhangs makes prints less sturdy. By expanding skins with the thickness of walls, features will be better supported. In addition, features such as towers on top of infill will be stronger. + +*Extra skin wall count +Printing extra skin directly on top of infill can lead to gaps, curling and pillowing. This is reduced by printing a wall around the skin first, and also improves the printing speed. + +*Minimum extrusion for skin +Will prevent filling small gaps that are probably filled already, resulting in less strings, better top details and faster prints. + +*PVA retractions +PVA (switch) retraction length is increased, minimum travel distance for retraction is decreased and max count is slightly increased, this reduces stringing by a lot at the cost of slightly increased print time. + +*Z seam options +Gives the user control over where to place the seam - hide it in convex corners or in easy to remove locations such as concave corners. Don’t let corner angles influence the seam position. + +*Quarter cubic infill +Similar to tetrahedral (octet) infill, but half of the lines are shifted half of the period up. This pattern sacrifices some rigidity of octet infill for greater toughness. + +*Cross infill +A fractal pattern infill that requires fewer retractions than other infill types. This is useful for flexible materials as it causes less material elongation. The internal structure given by this infill also assists flexible models having more resistance, while retaining ‘soft’ properties in all directions. + +*Layer start negative position +Layer start X/Y values can be less than 0 when the machine centre is zero. + +*PostProcessing stretch script +This new script performs "post stretch" algorithm to fix the problem of insufficient inner and outer diameters. Thanks to electrocbd for contributing. + +*Ironing speed settings +Ironing speed settings have been moved to experimental category. + +*Doodle3D plugin +Update Doodle3D plugin to connect with printers. Thanks to mith for contributing. + +*Bug fixes +- Customized profiles are not sent when connecting to a printer +- Sync z-hop with layer changes, thanks to smartavionics for contributing +- Memory leaks on MacOS +- Printer name not loaded when project file is opened +- Doodle3D Wifi box was selected by default on non-UM3 printers + [2.7.0] *Top surface skin Specify print settings of the top-most layers separately in order to improve print duration and achieve higher quality top surfaces. @@ -36,7 +126,7 @@ A dark theme for Cura. Select this theme to reduce eyestrain when working in dar The top bar user interface been improved so that “Prepare” and “Print” have moved from the right side of the interface to the left side. *New keyboard shortcuts -Models can now be manipulated on the build plate using hotkeys Q, A, Z, W, and tab keys. Q selects “move”, A selects “scale”, Z selects “rotate”, and W selects “mirror”. Use the tab key to navigate between interfaces. +Models can now be manipulated on the build plate using hotkeys Q, A, Z, W, and tab keys. Q selects “move”, A selects “scale”, Z selects “rotate”, and W selects “mirror”. Use the tab key to navigate between settings. *Plugin browser Easily download and install plugins using an integrated plugin browser. Go to “Extensions > Plugin Browser > Browse plugins” to select it. @@ -56,12 +146,15 @@ Extra tooltips have been added to clarify the machine settings. *Polish now supported Polish language support added. This can be selected in the preferences menu. +*Chinese now supported +Chinese language support added. This can be selected in the preferences menu. + *Bug fixes - Cura project Mac extensions - Crashes when adding printers - Jerk fixes - Z-hop over-extrusion - +- Material diameter in machine settings *3rd party printers - Peopoly Moai diff --git a/plugins/ChangeLogPlugin/__init__.py b/plugins/ChangeLogPlugin/__init__.py index dbeac8cb2d..97d9e411e5 100644 --- a/plugins/ChangeLogPlugin/__init__.py +++ b/plugins/ChangeLogPlugin/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import ChangeLog diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 3710d33965..0c1fc6f4ad 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -1,5 +1,5 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Backend.Backend import Backend, BackendState from UM.Application import Application @@ -195,20 +195,8 @@ class CuraEngineBackend(QObject, Backend): self.backendStateChange.emit(BackendState.Done) Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") return - - self.printDurationMessage.emit({ - "none": 0, - "inset_0": 0, - "inset_x": 0, - "skin": 0, - "support": 0, - "skirt": 0, - "infill": 0, - "support_infill": 0, - "travel": 0, - "retract": 0, - "support_interface": 0 - }, [0]) + if Application.getInstance().getPrintInformation(): + Application.getInstance().getPrintInformation().setToZeroPrintInformation() self._stored_layer_data = [] self._stored_optimized_layer_data = [] @@ -278,7 +266,7 @@ class CuraEngineBackend(QObject, Backend): if job.getResult() == StartSliceJob.StartJobResult.MaterialIncompatible: if Application.getInstance().platformActivity: self._error_message = Message(catalog.i18nc("@info:status", - "The selected material is incompatible with the selected machine or configuration.")) + "Unable to slice with the current material as it is incompatible with the selected machine or configuration."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: @@ -305,7 +293,8 @@ class CuraEngineBackend(QObject, Backend): error_labels.add(definitions[0].label) error_labels = ", ".join(error_labels) - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}".format(error_labels))) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}").format(error_labels), + title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: @@ -314,7 +303,8 @@ class CuraEngineBackend(QObject, Backend): if job.getResult() == StartSliceJob.StartJobResult.BuildPlateError: if Application.getInstance().platformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid.")) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid."), + title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: @@ -322,7 +312,8 @@ class CuraEngineBackend(QObject, Backend): if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: if Application.getInstance().platformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit.")) + self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), + title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: @@ -427,6 +418,7 @@ class CuraEngineBackend(QObject, Backend): ## Convenient function: set need_slicing, emit state and clear layer data def needsSlicing(self): + self.stopSlicing() self._need_slicing = True self.processingProgress.emit(0.0) self.backendStateChange.emit(BackendState.NotStarted) @@ -449,7 +441,7 @@ class CuraEngineBackend(QObject, Backend): def _onStackErrorCheckFinished(self): self._is_error_check_scheduled = False - if self._need_slicing: + if not self._slicing and self._need_slicing: self.needsSlicing() self._onChanged() @@ -510,29 +502,6 @@ class CuraEngineBackend(QObject, Backend): def _onGCodePrefixMessage(self, message): self._scene.gcode_list.insert(0, message.data.decode("utf-8", "replace")) - ## Called when a print time message is received from the engine. - # - # \param message The protobuf message containing the print time per feature and - # material amount per extruder - def _onPrintTimeMaterialEstimates(self, message): - material_amounts = [] - for index in range(message.repeatedMessageCount("materialEstimates")): - material_amounts.append(message.getRepeatedMessage("materialEstimates", index).material_amount) - feature_times = { - "none": message.time_none, - "inset_0": message.time_inset_0, - "inset_x": message.time_inset_x, - "skin": message.time_skin, - "support": message.time_support, - "skirt": message.time_skirt, - "infill": message.time_infill, - "support_infill": message.time_support_infill, - "travel": message.time_travel, - "retract": message.time_retract, - "support_interface": message.time_support_interface - } - self.printDurationMessage.emit(feature_times, material_amounts) - ## Creates a new socket connection. def _createSocket(self): super()._createSocket(os.path.abspath(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "Cura.proto"))) @@ -551,6 +520,37 @@ class CuraEngineBackend(QObject, Backend): else: self._change_timer.start() + ## Called when a print time message is received from the engine. + # + # \param message The protobuf message containing the print time per feature and + # material amount per extruder + def _onPrintTimeMaterialEstimates(self, message): + material_amounts = [] + for index in range(message.repeatedMessageCount("materialEstimates")): + material_amounts.append(message.getRepeatedMessage("materialEstimates", index).material_amount) + + times = self._parseMessagePrintTimes(message) + self.printDurationMessage.emit(times, material_amounts) + + ## Called for parsing message to retrieve estimated time per feature + # + # \param message The protobuf message containing the print time per feature + def _parseMessagePrintTimes(self, message): + result = { + "inset_0": message.time_inset_0, + "inset_x": message.time_inset_x, + "skin": message.time_skin, + "infill": message.time_infill, + "support_infill": message.time_support_infill, + "support_interface": message.time_support_interface, + "support": message.time_support, + "skirt": message.time_skirt, + "travel": message.time_travel, + "retract": message.time_retract, + "none": message.time_none + } + return result + ## Called when the back-end connects to the front-end. def _onBackendConnected(self): if self._restart: diff --git a/plugins/CuraEngineBackend/ProcessGCodeJob.py b/plugins/CuraEngineBackend/ProcessGCodeJob.py index 697d20b053..4974907c30 100644 --- a/plugins/CuraEngineBackend/ProcessGCodeJob.py +++ b/plugins/CuraEngineBackend/ProcessGCodeJob.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Job import Job from UM.Application import Application diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 1fe537622f..a352564bc2 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -1,5 +1,5 @@ #Copyright (c) 2017 Ultimaker B.V. -#Cura is released under the terms of the AGPLv3 or higher. +#Cura is released under the terms of the LGPLv3 or higher. import gc @@ -47,7 +47,7 @@ class ProcessSlicedLayersJob(Job): super().__init__() self._layers = layers self._scene = Application.getInstance().getController().getScene() - self._progress = None + self._progress_message = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1) self._abort_requested = False ## Aborts the processing of layers. @@ -62,12 +62,11 @@ class ProcessSlicedLayersJob(Job): def run(self): start_time = time() if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView": - self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1) - self._progress.show() + self._progress_message.show() Job.yieldThread() if self._abort_requested: - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() return Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged) @@ -80,8 +79,8 @@ class ProcessSlicedLayersJob(Job): node.getParent().removeChild(node) break if self._abort_requested: - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() return # Force garbage collection. @@ -159,11 +158,11 @@ class ProcessSlicedLayersJob(Job): # This needs some work in LayerData so we can add the new layers instead of recreating the entire mesh. if self._abort_requested: - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() return - if self._progress: - self._progress.setProgress(progress) + if self._progress_message: + self._progress_message.setProgress(progress) # We are done processing all the layers we got from the engine, now create a mesh out of the data @@ -197,8 +196,8 @@ class ProcessSlicedLayersJob(Job): layer_mesh = layer_data.build(material_color_map, line_type_brightness) if self._abort_requested: - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() return # Add LayerDataDecorator to scene node to indicate that the node has layer data @@ -216,15 +215,15 @@ class ProcessSlicedLayersJob(Job): if not settings.getProperty("machine_center_is_zero", "value"): new_node.setPosition(Vector(-settings.getProperty("machine_width", "value") / 2, 0.0, settings.getProperty("machine_depth", "value") / 2)) - if self._progress: - self._progress.setProgress(100) + if self._progress_message: + self._progress_message.setProgress(100) view = Application.getInstance().getController().getActiveView() if view.getPluginId() == "LayerView": view.resetLayerData() - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() # Clear the unparsed layers. This saves us a bunch of memory if the Job does not get destroyed. self._layers = None @@ -234,10 +233,11 @@ class ProcessSlicedLayersJob(Job): def _onActiveViewChanged(self): if self.isRunning(): if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView": - if not self._progress: - self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, 0) - if self._progress.getProgress() != 100: - self._progress.show() + if not self._progress_message: + self._progress_message = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, 0, catalog.i18nc("@info:title", "Information")) + if self._progress_message.getProgress() != 100: + self._progress_message.show() else: - if self._progress: - self._progress.hide() + if self._progress_message: + self._progress_message.hide() + diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index f2e9cb7db2..a53daa4e63 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -1,5 +1,5 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. import numpy from string import Formatter @@ -224,7 +224,18 @@ class StartSliceJob(Job): material_instance_container = stack.findContainer({"type": "material"}) + settings = {} for key in stack.getAllKeys(): + settings[key] = stack.getProperty(key, "value") + Job.yieldThread() + + settings["print_bed_temperature"] = settings["material_bed_temperature"] #Renamed settings. + settings["print_temperature"] = settings["material_print_temperature"] + settings["time"] = time.strftime("%H:%M:%S") #Some extra settings. + settings["date"] = time.strftime("%d-%m-%Y") + settings["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))] + + for key, value in settings.items(): # Do not send settings that are not settable_per_extruder. if not stack.getProperty(key, "settable_per_extruder"): continue @@ -233,6 +244,8 @@ class StartSliceJob(Job): if key == "material_guid" and material_instance_container: # Also send the material GUID. This is a setting in fdmprinter, but we have no interface for it. setting.value = str(material_instance_container.getMetaDataEntry("GUID", "")).encode("utf-8") + elif key == "machine_extruder_start_code" or key == "machine_extruder_end_code": + setting.value = self._expandGcodeTokens(key, value, settings) else: setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() @@ -278,7 +291,7 @@ class StartSliceJob(Job): for key, value in settings.items(): #Add all submessages for each individual setting. setting_message = self._slice_message.getMessage("global_settings").addRepeatedMessage("settings") setting_message.name = key - if key == "machine_start_gcode" or key == "machine_end_gcode" or key == "machine_extruder_start_code" or key == "machine_extruder_end_code": #If it's a g-code message, use special formatting. + if key == "machine_start_gcode" or key == "machine_end_gcode": #If it's a g-code message, use special formatting. setting_message.value = self._expandGcodeTokens(key, value, settings) else: setting_message.value = str(value).encode("utf-8") @@ -306,31 +319,46 @@ class StartSliceJob(Job): # \param message object_lists message to put the per object settings in def _handlePerObjectSettings(self, node, message): stack = node.callDecoration("getStack") + # Check if the node has a stack attached to it and the stack has any settings in the top container. - if stack: - # Check all settings for relations, so we can also calculate the correct values for dependant settings. - changed_setting_keys = set(stack.getTop().getAllKeys()) - for key in stack.getTop().getAllKeys(): - instance = stack.getTop().getInstance(key) - self._addRelations(changed_setting_keys, instance.definition.relations) - Job.yieldThread() + if not stack: + return - # Ensure that the engine is aware what the build extruder is - if stack.getProperty("machine_extruder_count", "value") > 1: - changed_setting_keys.add("extruder_nr") + # Check all settings for relations, so we can also calculate the correct values for dependent settings. + top_of_stack = stack.getTop() # Cache for efficiency. + changed_setting_keys = set(top_of_stack.getAllKeys()) - # Get values for all changed settings - for key in changed_setting_keys: - setting = message.addRepeatedMessage("settings") - setting.name = key - setting.value = str(stack.getProperty(key, "value")).encode("utf-8") - Job.yieldThread() + # Add all relations to changed settings as well. + for key in top_of_stack.getAllKeys(): + instance = top_of_stack.getInstance(key) + self._addRelations(changed_setting_keys, instance.definition.relations) + Job.yieldThread() - ## Recursive function to put all settings that require eachother for value changes in a list + # Ensure that the engine is aware what the build extruder is. + if stack.getProperty("machine_extruder_count", "value") > 1: + changed_setting_keys.add("extruder_nr") + + # Get values for all changed settings + for key in changed_setting_keys: + setting = message.addRepeatedMessage("settings") + setting.name = key + extruder = int(round(float(stack.getProperty(key, "limit_to_extruder")))) + + # Check if limited to a specific extruder, but not overridden by per-object settings. + if extruder >= 0 and key not in changed_setting_keys: + limited_stack = ExtruderManager.getInstance().getActiveExtruderStacks()[extruder] + else: + limited_stack = stack + + setting.value = str(limited_stack.getProperty(key, "value")).encode("utf-8") + + Job.yieldThread() + + ## Recursive function to put all settings that require each other for value changes in a list # \param relations_set \type{set} Set of keys (strings) of settings that are influenced # \param relations list of relation objects that need to be checked. def _addRelations(self, relations_set, relations): - for relation in filter(lambda r: r.role == "value", relations): + for relation in filter(lambda r: r.role == "value" or r.role == "limit_to_extruder", relations): if relation.type == RelationType.RequiresTarget: continue diff --git a/plugins/CuraEngineBackend/__init__.py b/plugins/CuraEngineBackend/__init__.py index a5269d03cd..046c8f76a9 100644 --- a/plugins/CuraEngineBackend/__init__.py +++ b/plugins/CuraEngineBackend/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. #Shoopdawoop from . import CuraEngineBackend diff --git a/plugins/CuraProfileReader/CuraProfileReader.py b/plugins/CuraProfileReader/CuraProfileReader.py index f3ac6bab8a..5631d138aa 100644 --- a/plugins/CuraProfileReader/CuraProfileReader.py +++ b/plugins/CuraProfileReader/CuraProfileReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser from UM.PluginRegistry import PluginRegistry diff --git a/plugins/CuraProfileReader/__init__.py b/plugins/CuraProfileReader/__init__.py index bbf446fc5f..47149d3135 100644 --- a/plugins/CuraProfileReader/__init__.py +++ b/plugins/CuraProfileReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import CuraProfileReader diff --git a/plugins/CuraProfileWriter/CuraProfileWriter.py b/plugins/CuraProfileWriter/CuraProfileWriter.py index cd3681b86f..864a9b602c 100644 --- a/plugins/CuraProfileWriter/CuraProfileWriter.py +++ b/plugins/CuraProfileWriter/CuraProfileWriter.py @@ -1,6 +1,6 @@ # Copyright (c) 2015 Ultimaker B.V. # Copyright (c) 2013 David Braam -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Logger import Logger from UM.SaveFile import SaveFile diff --git a/plugins/CuraProfileWriter/__init__.py b/plugins/CuraProfileWriter/__init__.py index 244ba580cd..3500106c20 100644 --- a/plugins/CuraProfileWriter/__init__.py +++ b/plugins/CuraProfileWriter/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from . import CuraProfileWriter diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py new file mode 100644 index 0000000000..458aca5787 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -0,0 +1,65 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt5.QtCore import QUrl +from PyQt5.QtGui import QDesktopServices + +from UM.Extension import Extension +from UM.Preferences import Preferences +from UM.Logger import Logger +from UM.i18n import i18nCatalog +from cura.Settings.GlobalStack import GlobalStack + +from .FirmwareUpdateCheckerJob import FirmwareUpdateCheckerJob +from UM.Settings.ContainerRegistry import ContainerRegistry + +i18n_catalog = i18nCatalog("cura") + + +## This Extension checks for new versions of the firmware based on the latest checked version number. +# The plugin is currently only usable for applications maintained by Ultimaker. But it should be relatively easy +# to change it to work for other applications. +class FirmwareUpdateChecker(Extension): + JEDI_VERSION_URL = "http://software.ultimaker.com/jedi/releases/latest.version" + + def __init__(self): + super().__init__() + + # Initialize the Preference called `latest_checked_firmware` that stores the last version + # checked for the UM3. In the future if we need to check other printers' firmware + Preferences.getInstance().addPreference("info/latest_checked_firmware", "") + + # Listen to a Signal that indicates a change in the list of printers, just if the user has enabled the + # 'check for updates' option + Preferences.getInstance().addPreference("info/automatic_update_check", True) + if Preferences.getInstance().getValue("info/automatic_update_check"): + ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) + + self._download_url = None + + ## Callback for the message that is spawned when there is a new version. + def _onActionTriggered(self, message, action): + if action == "download": + if self._download_url is not None: + QDesktopServices.openUrl(QUrl(self._download_url)) + + def _onSetDownloadUrl(self, download_url): + self._download_url = download_url + + def _onContainerAdded(self, container): + # Only take care when a new GlobalStack was added + if isinstance(container, GlobalStack): + Logger.log("i", "You have a '%s' in printer list. Let's check the firmware!", container.getId()) + self.checkFirmwareVersion(container, True) + + ## Connect with software.ultimaker.com, load latest.version and check version info. + # If the version info is different from the current version, spawn a message to + # allow the user to download it. + # + # \param silent type(boolean) Suppresses messages other than "new version found" messages. + # This is used when checking for a new firmware version at startup. + def checkFirmwareVersion(self, container = None, silent = False): + job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL, + callback = self._onActionTriggered, + set_download_url_callback = self._onSetDownloadUrl) + job.start() diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py new file mode 100644 index 0000000000..6dd7338cfd --- /dev/null +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -0,0 +1,78 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Preferences import Preferences +from UM.Application import Application +from UM.Message import Message +from UM.Logger import Logger +from UM.Job import Job + +import urllib.request +import codecs + +from UM.i18n import i18nCatalog +i18n_catalog = i18nCatalog("cura") + + +## This job checks if there is an update available on the provided URL. +class FirmwareUpdateCheckerJob(Job): + def __init__(self, container = None, silent = False, url = None, callback = None, set_download_url_callback = None): + super().__init__() + self._container = container + self.silent = silent + self._url = url + self._callback = callback + self._set_download_url_callback = set_download_url_callback + + def run(self): + if not self._url: + Logger.log("e", "Can not check for a new release. URL not set!") + return + + try: + application_name = Application.getInstance().getApplicationName() + headers = {"User-Agent": "%s - %s" % (application_name, Application.getInstance().getVersion())} + request = urllib.request.Request(self._url, headers = headers) + current_version_file = urllib.request.urlopen(request) + reader = codecs.getreader("utf-8") + + # get machine name from the definition container + machine_name = self._container.definition.getName() + machine_name_parts = machine_name.lower().split(" ") + + # If it is not None, then we compare between the checked_version and the current_version + # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any + # other Ultimaker 3 that will come in the future + if len(machine_name_parts) >= 2 and machine_name_parts[:2] == ["ultimaker", "3"]: + # Nothing to parse, just get the string + # TODO: In the future may be done by parsing a JSON file with diferent version for each printer model + current_version = reader(current_version_file).readline().rstrip() + + # If it is the first time the version is checked, the checked_version is '' + checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware") + + # If the checked_version is '', it's because is the first time we check firmware and in this case + # we will not show the notification, but we will store it for the next time + Preferences.getInstance().setValue("info/latest_checked_firmware", current_version) + Logger.log("i", "Reading firmware version of %s: checked = %s - latest = %s", machine_name, checked_version, current_version) + + # The first time we want to store the current version, the notification will not be shown, + # because the new version of Cura will be release before the firmware and we don't want to + # notify the user when no new firmware version is available. + if (checked_version != "") and (checked_version != current_version): + Logger.log("i", "SHOWING FIRMWARE UPDATE MESSAGE") + message = Message(i18n_catalog.i18nc("@info Don't translate {machine_name}, since it gets replaced by a printer name!", "New features are available for your {machine_name}! It is recommended to update the firmware on your printer.").format(machine_name = machine_name), + title = i18n_catalog.i18nc("@info:title The %s gets replaced with the printer name.", "New %s firmware available") % machine_name) + message.addAction("download", i18n_catalog.i18nc("@action:button", "How to update"), "[no_icon]", "[no_description]") + + # If we do this in a cool way, the download url should be available in the JSON file + if self._set_download_url_callback: + self._set_download_url_callback("https://ultimaker.com/en/resources/20500-upgrade-firmware") + message.actionTriggered.connect(self._callback) + message.show() + + except Exception as e: + Logger.log("w", "Failed to check for new version: %s", e) + if not self.silent: + Message(i18n_catalog.i18nc("@info", "Could not access update information.")).show() + return diff --git a/plugins/FirmwareUpdateChecker/__init__.py b/plugins/FirmwareUpdateChecker/__init__.py new file mode 100644 index 0000000000..3fae15e826 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/__init__.py @@ -0,0 +1,16 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.i18n import i18nCatalog + +from . import FirmwareUpdateChecker + +i18n_catalog = i18nCatalog("cura") + + +def getMetaData(): + return {} + + +def register(app): + return {"extension": FirmwareUpdateChecker.FirmwareUpdateChecker()} diff --git a/plugins/FirmwareUpdateChecker/plugin.json b/plugins/FirmwareUpdateChecker/plugin.json new file mode 100644 index 0000000000..d6a9f9fbd7 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Firmware Update Checker", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Checks for firmware updates.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/GCodeProfileReader/GCodeProfileReader.py b/plugins/GCodeProfileReader/GCodeProfileReader.py index 0abbcfc833..9d7f0059f9 100644 --- a/plugins/GCodeProfileReader/GCodeProfileReader.py +++ b/plugins/GCodeProfileReader/GCodeProfileReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import re #Regular expressions for parsing escape characters in the settings. import json diff --git a/plugins/GCodeProfileReader/__init__.py b/plugins/GCodeProfileReader/__init__.py index a5912e3cb3..d690848c96 100644 --- a/plugins/GCodeProfileReader/__init__.py +++ b/plugins/GCodeProfileReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import GCodeProfileReader diff --git a/plugins/GCodeReader/GCodeReader.py b/plugins/GCodeReader/GCodeReader.py index c59e6dce72..9107ec3258 100755 --- a/plugins/GCodeReader/GCodeReader.py +++ b/plugins/GCodeReader/GCodeReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Aleph Objects, Inc. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application from UM.Backend import Backend @@ -251,7 +251,10 @@ class GCodeReader(MeshReader): self._clearValues() - self._message = Message(catalog.i18nc("@info:status", "Parsing G-code"), lifetime=0) + self._message = Message(catalog.i18nc("@info:status", "Parsing G-code"), + lifetime=0, + title = catalog.i18nc("@info:title", "G-code Details")) + self._message.setProgress(0) self._message.show() @@ -362,7 +365,9 @@ class GCodeReader(MeshReader): if Preferences.getInstance().getValue("gcodereader/show_caution"): caution_message = Message(catalog.i18nc( "@info:generic", - "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate."), lifetime=0) + "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate."), + lifetime=0, + title = catalog.i18nc("@info:title", "G-code Details")) caution_message.show() # The "save/print" button's state is bound to the backend state. diff --git a/plugins/GCodeReader/__init__.py b/plugins/GCodeReader/__init__.py index 7cabeaf5a8..999dd37a37 100644 --- a/plugins/GCodeReader/__init__.py +++ b/plugins/GCodeReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Aleph Objects, Inc. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import GCodeReader diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 61bd682de0..3860590ef7 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Mesh.MeshWriter import MeshWriter from UM.Logger import Logger diff --git a/plugins/GCodeWriter/__init__.py b/plugins/GCodeWriter/__init__.py index 904deb1c19..a89332a371 100644 --- a/plugins/GCodeWriter/__init__.py +++ b/plugins/GCodeWriter/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import GCodeWriter diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 65374702ab..d2caec0220 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -10,11 +10,11 @@ import UM 1.1 as UM UM.Dialog { - width: 350 * Screen.devicePixelRatio; - minimumWidth: 350 * Screen.devicePixelRatio; + width: minimumWidth; + minimumWidth: 350 * screenScaleFactor; - height: 250 * Screen.devicePixelRatio; - minimumHeight: 250 * Screen.devicePixelRatio; + height: minimumHeight; + minimumHeight: 250 * screenScaleFactor; title: catalog.i18nc("@title:window", "Convert Image...") @@ -23,8 +23,8 @@ UM.Dialog UM.I18nCatalog{id: catalog; name:"cura"} anchors.fill: parent; Layout.fillWidth: true - columnSpacing: 16 - rowSpacing: 4 + columnSpacing: 16 * screenScaleFactor + rowSpacing: 4 * screenScaleFactor columns: 1 UM.TooltipArea { @@ -36,7 +36,7 @@ UM.Dialog Label { text: catalog.i18nc("@action:label","Height (mm)") - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } @@ -44,7 +44,7 @@ UM.Dialog id: peak_height objectName: "Peak_Height" validator: DoubleValidator {notation: DoubleValidator.StandardNotation; bottom: -500; top: 500;} - width: 180 + width: 180 * screenScaleFactor onTextChanged: { manager.onPeakHeightChanged(text) } } } @@ -59,7 +59,7 @@ UM.Dialog Label { text: catalog.i18nc("@action:label","Base (mm)") - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } @@ -67,7 +67,7 @@ UM.Dialog id: base_height objectName: "Base_Height" validator: DoubleValidator {notation: DoubleValidator.StandardNotation; bottom: 0; top: 500;} - width: 180 + width: 180 * screenScaleFactor onTextChanged: { manager.onBaseHeightChanged(text) } } } @@ -82,7 +82,7 @@ UM.Dialog Label { text: catalog.i18nc("@action:label","Width (mm)") - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } @@ -91,7 +91,7 @@ UM.Dialog objectName: "Width" focus: true validator: DoubleValidator {notation: DoubleValidator.StandardNotation; bottom: 1; top: 500;} - width: 180 + width: 180 * screenScaleFactor onTextChanged: { manager.onWidthChanged(text) } } } @@ -106,7 +106,7 @@ UM.Dialog Label { text: catalog.i18nc("@action:label","Depth (mm)") - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } TextField { @@ -114,7 +114,7 @@ UM.Dialog objectName: "Depth" focus: true validator: DoubleValidator {notation: DoubleValidator.StandardNotation; bottom: 1; top: 500;} - width: 180 + width: 180 * screenScaleFactor onTextChanged: { manager.onDepthChanged(text) } } } @@ -130,14 +130,14 @@ UM.Dialog //Empty label so 2 column layout works. Label { text: "" - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } ComboBox { id: image_color_invert objectName: "Image_Color_Invert" model: [ catalog.i18nc("@item:inlistbox","Lighter is higher"), catalog.i18nc("@item:inlistbox","Darker is higher") ] - width: 180 + width: 180 * screenScaleFactor onCurrentIndexChanged: { manager.onImageColorInvertChanged(currentIndex) } } } @@ -152,13 +152,13 @@ UM.Dialog Label { text: catalog.i18nc("@action:label","Smoothing") - width: 150 + width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } Item { - width: 180 - height: 20 + width: 180 * screenScaleFactor + height: 20 * screenScaleFactor Layout.fillWidth: true Slider { diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 04dce9f439..b419c0b496 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import numpy diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index dc8d7015b6..40ea15f7a0 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os import threading diff --git a/plugins/ImageReader/__init__.py b/plugins/ImageReader/__init__.py index d1fb77859e..ea6ff8cceb 100644 --- a/plugins/ImageReader/__init__.py +++ b/plugins/ImageReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import ImageReader diff --git a/plugins/LayerView/LayerPass.py b/plugins/LayerView/LayerPass.py index 51a35fb48a..963c8c75c8 100755 --- a/plugins/LayerView/LayerPass.py +++ b/plugins/LayerView/LayerPass.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Resources import Resources diff --git a/plugins/LayerView/LayerSlider.qml b/plugins/LayerView/LayerSlider.qml new file mode 100644 index 0000000000..9abeb01148 --- /dev/null +++ b/plugins/LayerView/LayerSlider.qml @@ -0,0 +1,312 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.2 +import QtQuick.Layouts 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.0 as UM +import Cura 1.0 as Cura + +Item { + id: sliderRoot + + // handle properties + property real handleSize: 10 + property real handleRadius: handleSize / 2 + property real minimumRangeHandleSize: handleSize / 2 + property color upperHandleColor: "black" + property color lowerHandleColor: "black" + property color rangeHandleColor: "black" + property real handleLabelWidth: width + property var activeHandle: upperHandle + + // track properties + property real trackThickness: 4 // width of the slider track + property real trackRadius: trackThickness / 2 + property color trackColor: "white" + property real trackBorderWidth: 1 // width of the slider track border + property color trackBorderColor: "black" + + // value properties + property real maximumValue: 100 + property real minimumValue: 0 + property real minimumRange: 0 // minimum range allowed between min and max values + property bool roundValues: true + property real upperValue: maximumValue + property real lowerValue: minimumValue + + property bool layersVisible: true + + function getUpperValueFromSliderHandle () { + return upperHandle.getValue() + } + + function setUpperValue (value) { + upperHandle.setValue(value) + updateRangeHandle() + } + + function getLowerValueFromSliderHandle () { + return lowerHandle.getValue() + } + + function setLowerValue (value) { + lowerHandle.setValue(value) + updateRangeHandle() + } + + function updateRangeHandle () { + rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height) + } + + // set the active handle to show only one label at a time + function setActiveHandle (handle) { + activeHandle = handle + } + + // slider track + Rectangle { + id: track + + width: sliderRoot.trackThickness + height: sliderRoot.height - sliderRoot.handleSize + radius: sliderRoot.trackRadius + anchors.centerIn: sliderRoot + color: sliderRoot.trackColor + border.width: sliderRoot.trackBorderWidth + border.color: sliderRoot.trackBorderColor + visible: sliderRoot.layersVisible + } + + // Range handle + Item { + id: rangeHandle + + y: upperHandle.y + upperHandle.height + width: sliderRoot.handleSize + height: sliderRoot.minimumRangeHandleSize + anchors.horizontalCenter: sliderRoot.horizontalCenter + visible: sliderRoot.layersVisible + + // set the new value when dragging + function onHandleDragged () { + + upperHandle.y = y - upperHandle.height + lowerHandle.y = y + height + + var upperValue = sliderRoot.getUpperValueFromSliderHandle() + var lowerValue = sliderRoot.getLowerValueFromSliderHandle() + + // set both values after moving the handle position + UM.LayerView.setCurrentLayer(upperValue) + UM.LayerView.setMinimumLayer(lowerValue) + } + + function setValue (value) { + var range = sliderRoot.upperValue - sliderRoot.lowerValue + value = Math.min(value, sliderRoot.maximumValue) + value = Math.max(value, sliderRoot.minimumValue + range) + + UM.LayerView.setCurrentLayer(value) + UM.LayerView.setMinimumLayer(value - range) + } + + Rectangle { + width: sliderRoot.trackThickness - 2 * sliderRoot.trackBorderWidth + height: parent.height + sliderRoot.handleSize + anchors.centerIn: parent + color: sliderRoot.rangeHandleColor + } + + MouseArea { + anchors.fill: parent + + drag { + target: parent + axis: Drag.YAxis + minimumY: upperHandle.height + maximumY: sliderRoot.height - (rangeHandle.height + lowerHandle.height) + } + + onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(rangeHandle) + } + + LayerSliderLabel { + id: rangleHandleLabel + + height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height + x: parent.x - width - UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + target: Qt.point(sliderRoot.width, y + height / 2) + visible: sliderRoot.activeHandle == parent + + // custom properties + maximumValue: sliderRoot.maximumValue + value: sliderRoot.upperValue + busy: UM.LayerView.busy + setValue: rangeHandle.setValue // connect callback functions + } + } + + // Upper handle + Rectangle { + id: upperHandle + + y: sliderRoot.height - (sliderRoot.minimumRangeHandleSize + 2 * sliderRoot.handleSize) + width: sliderRoot.handleSize + height: sliderRoot.handleSize + anchors.horizontalCenter: sliderRoot.horizontalCenter + radius: sliderRoot.handleRadius + color: sliderRoot.upperHandleColor + visible: sliderRoot.layersVisible + + function onHandleDragged () { + + // don't allow the lower handle to be heigher than the upper handle + if (lowerHandle.y - (y + height) < sliderRoot.minimumRangeHandleSize) { + lowerHandle.y = y + height + sliderRoot.minimumRangeHandleSize + } + + // update the range handle + sliderRoot.updateRangeHandle() + + // set the new value after moving the handle position + UM.LayerView.setCurrentLayer(getValue()) + } + + // get the upper value based on the slider position + function getValue () { + var result = y / (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize)) + result = sliderRoot.maximumValue + result * (sliderRoot.minimumValue - (sliderRoot.maximumValue - sliderRoot.minimumValue)) + result = sliderRoot.roundValues ? Math.round(result) : result + return result + } + + // set the slider position based on the upper value + function setValue (value) { + + UM.LayerView.setCurrentLayer(value) + + var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue) + var newUpperYPosition = Math.round(diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize))) + y = newUpperYPosition + + // update the range handle + sliderRoot.updateRangeHandle() + } + + // dragging + MouseArea { + anchors.fill: parent + + drag { + target: parent + axis: Drag.YAxis + minimumY: 0 + maximumY: sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize) + } + + onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(upperHandle) + } + + LayerSliderLabel { + id: upperHandleLabel + + height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height + x: parent.x - width - UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + target: Qt.point(sliderRoot.width, y + height / 2) + visible: sliderRoot.activeHandle == parent + + // custom properties + maximumValue: sliderRoot.maximumValue + value: sliderRoot.upperValue + busy: UM.LayerView.busy + setValue: upperHandle.setValue // connect callback functions + } + } + + // Lower handle + Rectangle { + id: lowerHandle + + y: sliderRoot.height - sliderRoot.handleSize + width: parent.handleSize + height: parent.handleSize + anchors.horizontalCenter: parent.horizontalCenter + radius: sliderRoot.handleRadius + color: sliderRoot.lowerHandleColor + + visible: slider.layersVisible + + function onHandleDragged () { + + // don't allow the upper handle to be lower than the lower handle + if (y - (upperHandle.y + upperHandle.height) < sliderRoot.minimumRangeHandleSize) { + upperHandle.y = y - (upperHandle.heigth + sliderRoot.minimumRangeHandleSize) + } + + // update the range handle + sliderRoot.updateRangeHandle() + + // set the new value after moving the handle position + UM.LayerView.setMinimumLayer(getValue()) + } + + // get the lower value from the current slider position + function getValue () { + var result = (y - (sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize)) / (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize)); + result = sliderRoot.maximumValue - sliderRoot.minimumRange + result * (sliderRoot.minimumValue - (sliderRoot.maximumValue - sliderRoot.minimumRange)) + result = sliderRoot.roundValues ? Math.round(result) : result + return result + } + + // set the slider position based on the lower value + function setValue (value) { + + UM.LayerView.setMinimumLayer(value) + + var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue) + var newLowerYPosition = Math.round((sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize) + diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize))) + y = newLowerYPosition + + // update the range handle + sliderRoot.updateRangeHandle() + } + + // dragging + MouseArea { + anchors.fill: parent + + drag { + target: parent + axis: Drag.YAxis + minimumY: upperHandle.height + sliderRoot.minimumRangeHandleSize + maximumY: sliderRoot.height - parent.height + } + + onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(lowerHandle) + } + + LayerSliderLabel { + id: lowerHandleLabel + + height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height + x: parent.x - width - UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + target: Qt.point(sliderRoot.width, y + height / 2) + visible: sliderRoot.activeHandle == parent + + // custom properties + maximumValue: sliderRoot.maximumValue + value: sliderRoot.lowerValue + busy: UM.LayerView.busy + setValue: lowerHandle.setValue // connect callback functions + } + } +} diff --git a/plugins/LayerView/LayerSliderLabel.qml b/plugins/LayerView/LayerSliderLabel.qml new file mode 100644 index 0000000000..c989679285 --- /dev/null +++ b/plugins/LayerView/LayerSliderLabel.qml @@ -0,0 +1,103 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.2 +import QtQuick.Layouts 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.0 as UM +import Cura 1.0 as Cura + +UM.PointingRectangle { + id: sliderLabelRoot + + // custom properties + property real maximumValue: 100 + property real value: 0 + property var setValue // Function + property bool busy: false + + target: Qt.point(parent.width, y + height / 2) + arrowSize: UM.Theme.getSize("default_arrow").width + height: parent.height + width: valueLabel.width + UM.Theme.getSize("default_margin").width + visible: false + + // make sure the text field is focussed when pressing the parent handle + // needed to connect the key bindings when switching active handle + onVisibleChanged: if (visible) valueLabel.forceActiveFocus() + + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width + + Behavior on height { + NumberAnimation { + duration: 50 + } + } + + // catch all mouse events so they're not handled by underlying 3D scene + MouseArea { + anchors.fill: parent + } + + TextField { + id: valueLabel + + anchors { + left: parent.left + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) + verticalCenter: parent.verticalCenter + } + + width: 40 * screenScaleFactor + text: sliderLabelRoot.value + 1 // the current handle value, add 1 because layers is an array + horizontalAlignment: TextInput.AlignRight + + // key bindings, work when label is currenctly focused (active handle in LayerSlider) + Keys.onUpPressed: sliderLabelRoot.setValue(sliderLabelRoot.value + ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) + Keys.onDownPressed: sliderLabelRoot.setValue(sliderLabelRoot.value - ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) + + style: TextFieldStyle { + textColor: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + background: Item { } + } + + onEditingFinished: { + + // Ensure that the cursor is at the first position. On some systems the text isn't fully visible + // Seems to have to do something with different dpi densities that QML doesn't quite handle. + // Another option would be to increase the size even further, but that gives pretty ugly results. + cursorPosition = 0 + + if (valueLabel.text != "") { + // -1 because we need to convert back to an array structure + sliderLabelRoot.setValue(parseInt(valueLabel.text) - 1) + } + } + + validator: IntValidator { + bottom: 1 + top: sliderLabelRoot.maximumValue + 1 // +1 because actual layers is an array + } + } + + BusyIndicator { + id: busyIndicator + + anchors { + left: parent.right + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) + verticalCenter: parent.verticalCenter + } + + width: sliderLabelRoot.height + height: width + + visible: sliderLabelRoot.busy + running: sliderLabelRoot.busy + } +} diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 97a343bd33..04be97b747 100755 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import sys @@ -90,7 +90,8 @@ class LayerView(View): self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers")) self._compatibility_mode = True # for safety - self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled")) + self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled"), + title = catalog.i18nc("@info:title", "Layer View")) def _resetSettings(self): self._layer_view_type = 0 # 0 is material color, 1 is color by linetype, 2 is speed @@ -111,7 +112,6 @@ class LayerView(View): self._layer_pass = LayerPass.LayerPass(1, 1) self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool(Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode")) self._layer_pass.setLayerView(self) - self.getRenderer().addRenderPass(self._layer_pass) return self._layer_pass def getCurrentLayer(self): @@ -309,7 +309,8 @@ class LayerView(View): if event.type == Event.ViewActivateEvent: # Make sure the LayerPass is created - self.getLayerPass() + layer_pass = self.getLayerPass() + self.getRenderer().addRenderPass(layer_pass) Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged) self._onGlobalStackChanged() @@ -334,6 +335,7 @@ class LayerView(View): if self._global_container_stack: self._global_container_stack.propertyChanged.disconnect(self._onPropertyChanged) + self.getRenderer().removeRenderPass(self._layer_pass) self._composite_pass.setLayerBindings(self._old_layer_bindings) self._composite_pass.setCompositeShader(self._old_composite_shader) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index ad952f6ca1..7261926bc5 100755 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -1,7 +1,7 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.4 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.1 @@ -22,18 +22,27 @@ Item height: { if (UM.LayerView.compatibilityMode) { return UM.Theme.getSize("layerview_menu_size_compatibility").height; + } else if (UM.Preferences.getValue("layerview/layer_view_type") == 0) { + return UM.Theme.getSize("layerview_menu_size_material_color_mode").height + UM.LayerView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) } else { return UM.Theme.getSize("layerview_menu_size").height + UM.LayerView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) } } + property var buttonTarget: { - var force_binding = parent.y; // ensure this gets reevaluated when the panel moves - return base.mapFromItem(parent.parent, parent.buttonTarget.x, parent.buttonTarget.y); + if(parent != null) + { + var force_binding = parent.y; // ensure this gets reevaluated when the panel moves + return base.mapFromItem(parent.parent, parent.buttonTarget.x, parent.buttonTarget.y) + } + return Qt.point(0,0) } + visible: parent != null ? !parent.parent.monitoringPrint: true + UM.PointingRectangle { id: layerViewMenu - anchors.left: parent.left + anchors.right: parent.right anchors.top: parent.top width: parent.width height: parent.height @@ -41,9 +50,7 @@ Item color: UM.Theme.getColor("tool_panel_background") borderWidth: UM.Theme.getSize("default_lining").width borderColor: UM.Theme.getColor("lining") - - target: parent.buttonTarget - arrowSize: UM.Theme.getSize("default_arrow").width + arrowSize: 0 // hide arrow until weird issue with first time rendering is fixed ColumnLayout { id: view_settings @@ -64,35 +71,17 @@ Item anchors.leftMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("layerview_row_spacing").height anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 - - Label - { - id: layersLabel - anchors.left: parent.left - text: catalog.i18nc("@label","View Mode: Layers") - font.bold: true - color: UM.Theme.getColor("text") - Layout.fillWidth: true - elide: Text.ElideMiddle; - } - - Label - { - id: spaceLabel - anchors.left: parent.left - text: " " - font.pointSize: 0.5 - } + anchors.rightMargin: UM.Theme.getSize("default_margin").width Label { id: layerViewTypesLabel anchors.left: parent.left text: catalog.i18nc("@label","Color scheme") + font: UM.Theme.getFont("default"); visible: !UM.LayerView.compatibilityMode Layout.fillWidth: true - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("setting_control_text") } ListModel // matches LayerView.py @@ -122,7 +111,7 @@ Item visible: !UM.LayerView.compatibilityMode style: UM.Theme.styles.combobox anchors.right: parent.right - anchors.rightMargin: 10 + anchors.rightMargin: 10 * screenScaleFactor onActivated: { @@ -148,6 +137,7 @@ Item id: compatibilityModeLabel anchors.left: parent.left text: catalog.i18nc("@label","Compatibility Mode") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") visible: UM.LayerView.compatibilityMode Layout.fillWidth: true @@ -197,6 +187,7 @@ Item width: UM.Theme.getSize("layerview_legend_size").width height: UM.Theme.getSize("layerview_legend_size").height color: model.color + radius: width / 2 border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") visible: !view_settings.show_legend @@ -209,7 +200,8 @@ Item { text: model.name elide: Text.ElideRight - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") anchors.verticalCenter: parent.verticalCenter anchors.left: extrudersModelCheckBox.left; anchors.right: extrudersModelCheckBox.right; @@ -275,8 +267,9 @@ Item Label { text: label + font: UM.Theme.getFont("default") elide: Text.ElideRight - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("setting_control_text") anchors.verticalCenter: parent.verticalCenter anchors.left: legendModelCheckBox.left; anchors.right: legendModelCheckBox.right; @@ -339,296 +332,57 @@ Item Layout.fillWidth: true Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height Layout.preferredWidth: UM.Theme.getSize("layerview_row").width - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") } } } - Item - { + LayerSlider { id: slider - width: handleSize - height: parent.height - 2*UM.Theme.getSize("slider_layerview_margin").height - anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("slider_layerview_margin").height - anchors.right: layerViewMenu.right - anchors.rightMargin: UM.Theme.getSize("slider_layerview_margin").width - property real handleSize: UM.Theme.getSize("slider_handle").width - property real handleRadius: handleSize / 2 - property real minimumRangeHandleSize: UM.Theme.getSize("slider_handle").width / 2 - property real trackThickness: UM.Theme.getSize("slider_groove").width - property real trackRadius: trackThickness / 2 - property real trackBorderWidth: UM.Theme.getSize("default_lining").width - property color upperHandleColor: UM.Theme.getColor("slider_handle") - property color lowerHandleColor: UM.Theme.getColor("slider_handle") - property color rangeHandleColor: UM.Theme.getColor("slider_groove_fill") - property color trackColor: UM.Theme.getColor("slider_groove") - property color trackBorderColor: UM.Theme.getColor("slider_groove_border") + width: UM.Theme.getSize("slider_handle").width + height: UM.Theme.getSize("layerview_menu_size").height - property real maximumValue: UM.LayerView.numLayers - property real minimumValue: 0 - property real minimumRange: 0 - property bool roundValues: true - - property var activeHandle: upperHandle - property bool layersVisible: UM.LayerView.layerActivity && CuraApplication.platformActivity ? true : false - - function getUpperValueFromHandle() - { - var result = upperHandle.y / (height - (2 * handleSize + minimumRangeHandleSize)); - result = maximumValue + result * (minimumValue - (maximumValue - minimumRange)); - result = roundValues ? Math.round(result) | 0 : result; - return result; + anchors { + top: parent.bottom + topMargin: UM.Theme.getSize("slider_layerview_margin").height + right: layerViewMenu.right + rightMargin: UM.Theme.getSize("slider_layerview_margin").width } - function getLowerValueFromHandle() - { - var result = (lowerHandle.y - (handleSize + minimumRangeHandleSize)) / (height - (2 * handleSize + minimumRangeHandleSize)); - result = maximumValue - minimumRange + result * (minimumValue - (maximumValue - minimumRange)); - result = roundValues ? Math.round(result) : result; - return result; - } + // custom properties + upperValue: UM.LayerView.currentLayer + lowerValue: UM.LayerView.minimumLayer + maximumValue: UM.LayerView.numLayers + handleSize: UM.Theme.getSize("slider_handle").width + trackThickness: UM.Theme.getSize("slider_groove").width + trackColor: UM.Theme.getColor("slider_groove") + trackBorderColor: UM.Theme.getColor("slider_groove_border") + upperHandleColor: UM.Theme.getColor("slider_handle") + lowerHandleColor: UM.Theme.getColor("slider_handle") + rangeHandleColor: UM.Theme.getColor("slider_groove_fill") + handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width + layersVisible: UM.LayerView.layerActivity && CuraApplication.platformActivity ? true : false - function setUpperValue(value) - { - var value = (value - maximumValue) / (minimumValue - maximumValue); - var new_upper_y = Math.round(value * (height - (2 * handleSize + minimumRangeHandleSize))); - - if(new_upper_y != upperHandle.y) - { - upperHandle.y = new_upper_y; - } - rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height); - } - - function setLowerValue(value) - { - var value = (value - maximumValue) / (minimumValue - maximumValue); - var new_lower_y = Math.round((handleSize + minimumRangeHandleSize) + value * (height - (2 * handleSize + minimumRangeHandleSize))); - - if(new_lower_y != lowerHandle.y) - { - lowerHandle.y = new_lower_y; - } - rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height); - } - - Connections - { + // update values when layer data changes + Connections { target: UM.LayerView + onMaxLayersChanged: slider.setUpperValue(UM.LayerView.currentLayer) onMinimumLayerChanged: slider.setLowerValue(UM.LayerView.minimumLayer) onCurrentLayerChanged: slider.setUpperValue(UM.LayerView.currentLayer) } - Rectangle { - width: parent.trackThickness - height: parent.height - parent.handleSize - radius: parent.trackRadius - anchors.centerIn: parent - color: parent.trackColor - border.width: parent.trackBorderWidth; - border.color: parent.trackBorderColor; - } - - Item { - id: rangeHandle - y: upperHandle.y + upperHandle.height - width: parent.handleSize - height: parent.minimumRangeHandleSize - anchors.horizontalCenter: parent.horizontalCenter - - visible: slider.layersVisible - - property real value: UM.LayerView.currentLayer - function setValue(value) - { - var range = upperHandle.value - lowerHandle.value; - value = Math.min(value, slider.maximumValue); - value = Math.max(value, slider.minimumValue + range); - UM.LayerView.setCurrentLayer(value); - UM.LayerView.setMinimumLayer(value - range); - } - - Rectangle { - anchors.centerIn: parent - width: parent.parent.trackThickness - 2 * parent.parent.trackBorderWidth - height: parent.height + parent.parent.handleSize - color: parent.parent.rangeHandleColor - } - - MouseArea { - anchors.fill: parent - - drag.target: parent - drag.axis: Drag.YAxis - drag.minimumY: upperHandle.height - drag.maximumY: parent.parent.height - (parent.height + lowerHandle.height) - - onPressed: parent.parent.activeHandle = rangeHandle - onPositionChanged: - { - upperHandle.y = parent.y - upperHandle.height - lowerHandle.y = parent.y + parent.height - - var upper_value = slider.getUpperValueFromHandle(); - var lower_value = upper_value - (upperHandle.value - lowerHandle.value); - UM.LayerView.setCurrentLayer(upper_value); - UM.LayerView.setMinimumLayer(lower_value); - } - } - } - - Rectangle { - id: upperHandle - y: parent.height - (parent.minimumRangeHandleSize + 2 * parent.handleSize) - width: parent.handleSize - height: parent.handleSize - anchors.horizontalCenter: parent.horizontalCenter - radius: parent.handleRadius - color: parent.upperHandleColor - - visible: slider.layersVisible - - property real value: UM.LayerView.currentLayer - function setValue(value) - { - UM.LayerView.setCurrentLayer(value); - } - - MouseArea { - anchors.fill: parent - - drag.target: parent - drag.axis: Drag.YAxis - drag.minimumY: 0 - drag.maximumY: parent.parent.height - (2 * parent.parent.handleSize + parent.parent.minimumRangeHandleSize) - - onPressed: parent.parent.activeHandle = upperHandle - onPositionChanged: - { - if(lowerHandle.y - (upperHandle.y + upperHandle.height) < parent.parent.minimumRangeHandleSize) - { - lowerHandle.y = upperHandle.y + upperHandle.height + parent.parent.minimumRangeHandleSize; - } - rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height); - - UM.LayerView.setCurrentLayer(slider.getUpperValueFromHandle()); - } - } - } - - Rectangle { - id: lowerHandle - y: parent.height - parent.handleSize - width: parent.handleSize - height: parent.handleSize - anchors.horizontalCenter: parent.horizontalCenter - radius: parent.handleRadius - color: parent.lowerHandleColor - - visible: slider.layersVisible - - property real value: UM.LayerView.minimumLayer - function setValue(value) - { - UM.LayerView.setMinimumLayer(value); - } - - MouseArea { - anchors.fill: parent - - drag.target: parent - drag.axis: Drag.YAxis - drag.minimumY: upperHandle.height + parent.parent.minimumRangeHandleSize - drag.maximumY: parent.parent.height - parent.height - - onPressed: parent.parent.activeHandle = lowerHandle - onPositionChanged: - { - if(lowerHandle.y - (upperHandle.y + upperHandle.height) < parent.parent.minimumRangeHandleSize) - { - upperHandle.y = lowerHandle.y - (upperHandle.height + parent.parent.minimumRangeHandleSize); - } - rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height) - - UM.LayerView.setMinimumLayer(slider.getLowerValueFromHandle()); - } - } - } - - UM.PointingRectangle - { - x: parent.width + UM.Theme.getSize("slider_layerview_background").width / 2; - y: Math.floor(slider.activeHandle.y + slider.activeHandle.height / 2 - height / 2); - - target: Qt.point(0, slider.activeHandle.y + slider.activeHandle.height / 2) - arrowSize: UM.Theme.getSize("default_arrow").width - - height: UM.Theme.getSize("slider_handle").height + UM.Theme.getSize("default_margin").height - width: valueLabel.width + UM.Theme.getSize("default_margin").width - Behavior on height { NumberAnimation { duration: 50; } } - - color: UM.Theme.getColor("tool_panel_background") - borderColor: UM.Theme.getColor("lining") - borderWidth: UM.Theme.getSize("default_lining").width - - visible: slider.layersVisible - - MouseArea //Catch all mouse events (so scene doesnt handle them) - { - anchors.fill: parent - } - - TextField - { - id: valueLabel - property string maxValue: slider.maximumValue + 1 - text: slider.activeHandle.value + 1 - horizontalAlignment: TextInput.AlignRight; - onEditingFinished: - { - // Ensure that the cursor is at the first position. On some systems the text isn't fully visible - // Seems to have to do something with different dpi densities that QML doesn't quite handle. - // Another option would be to increase the size even further, but that gives pretty ugly results. - cursorPosition = 0; - if(valueLabel.text != '') - { - slider.activeHandle.setValue(valueLabel.text - 1); - } - } - validator: IntValidator { bottom: 1; top: slider.maximumValue + 1; } - - anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2; - anchors.verticalCenter: parent.verticalCenter; - - width: Math.max(UM.Theme.getSize("line").width * maxValue.length + 2, 20); - style: TextFieldStyle - { - textColor: UM.Theme.getColor("setting_control_text"); - font: UM.Theme.getFont("default"); - background: Item { } - } - - Keys.onUpPressed: slider.activeHandle.setValue(slider.activeHandle.value + ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) - Keys.onDownPressed: slider.activeHandle.setValue(slider.activeHandle.value - ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) - } - - BusyIndicator - { - id: busyIndicator; - anchors.left: parent.right; - anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2; - anchors.verticalCenter: parent.verticalCenter; - - width: UM.Theme.getSize("slider_handle").height; - height: width; - - running: UM.LayerView.busy; - visible: UM.LayerView.busy; - } + // make sure the slider handlers show the correct value after switching views + Component.onCompleted: { + slider.setLowerValue(UM.LayerView.minimumLayer) + slider.setUpperValue(UM.LayerView.currentLayer) } } } + + FontMetrics { + id: fontMetrics + font: UM.Theme.getFont("default") + } } diff --git a/plugins/LayerView/LayerViewProxy.py b/plugins/LayerView/LayerViewProxy.py index bc372aeaf8..4cf84117da 100644 --- a/plugins/LayerView/LayerViewProxy.py +++ b/plugins/LayerView/LayerViewProxy.py @@ -6,7 +6,7 @@ import LayerView class LayerViewProxy(QObject): - def __init__(self, parent = None): + def __init__(self, parent=None): super().__init__(parent) self._current_layer = 0 self._controller = Application.getInstance().getController() @@ -18,33 +18,33 @@ class LayerViewProxy(QObject): activityChanged = pyqtSignal() globalStackChanged = pyqtSignal() preferencesChanged = pyqtSignal() + busyChanged = pyqtSignal() - @pyqtProperty(bool, notify = activityChanged) + @pyqtProperty(bool, notify=activityChanged) def layerActivity(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: return active_view.getActivity() - @pyqtProperty(int, notify = maxLayersChanged) + @pyqtProperty(int, notify=maxLayersChanged) def numLayers(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: return active_view.getMaxLayers() - @pyqtProperty(int, notify = currentLayerChanged) + @pyqtProperty(int, notify=currentLayerChanged) def currentLayer(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: return active_view.getCurrentLayer() - @pyqtProperty(int, notify = currentLayerChanged) + @pyqtProperty(int, notify=currentLayerChanged) def minimumLayer(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: return active_view.getMinimumLayer() - busyChanged = pyqtSignal() - @pyqtProperty(bool, notify = busyChanged) + @pyqtProperty(bool, notify=busyChanged) def busy(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: @@ -52,12 +52,11 @@ class LayerViewProxy(QObject): return False - @pyqtProperty(bool, notify = preferencesChanged) + @pyqtProperty(bool, notify=preferencesChanged) def compatibilityMode(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: return active_view.getCompatibilityMode() - return False @pyqtSlot(int) @@ -78,7 +77,7 @@ class LayerViewProxy(QObject): if type(active_view) == LayerView.LayerView.LayerView: active_view.setLayerViewType(layer_view_type) - @pyqtSlot(result = int) + @pyqtSlot(result=int) def getLayerViewType(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: @@ -116,7 +115,7 @@ class LayerViewProxy(QObject): if type(active_view) == LayerView.LayerView.LayerView: active_view.setShowInfill(show) - @pyqtProperty(int, notify = globalStackChanged) + @pyqtProperty(int, notify=globalStackChanged) def extruderCount(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: diff --git a/plugins/LayerView/__init__.py b/plugins/LayerView/__init__.py index 0f6b43698a..da1a5aed19 100644 --- a/plugins/LayerView/__init__.py +++ b/plugins/LayerView/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import LayerView, LayerViewProxy from PyQt5.QtQml import qmlRegisterType, qmlRegisterSingletonType @@ -10,7 +10,7 @@ catalog = i18nCatalog("cura") def getMetaData(): return { "view": { - "name": catalog.i18nc("@item:inlistbox", "Layers"), + "name": catalog.i18nc("@item:inlistbox", "Layer view"), "view_panel": "LayerView.qml", "weight": 2 } diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index 38cd9fd3c9..3d680f2b97 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser # For reading the legacy profile INI files. import json # For reading the Dictionary of Doom. diff --git a/plugins/LegacyProfileReader/__init__.py b/plugins/LegacyProfileReader/__init__.py index 10dd298864..11157f7260 100644 --- a/plugins/LegacyProfileReader/__init__.py +++ b/plugins/LegacyProfileReader/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import LegacyProfileReader diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index 832e247d19..360dae7a2c 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import pyqtProperty, pyqtSignal from UM.FlameProfiler import pyqtSlot @@ -79,7 +79,7 @@ class MachineSettingsAction(MachineAction): @pyqtSlot() def onFinishAction(self): # Restore autoslicing when the machineaction is dismissed - if self._backend.determineAutoSlicing(): + if self._backend and self._backend.determineAutoSlicing(): self._backend.tickle() def _onActiveExtruderStackChanged(self): @@ -147,6 +147,7 @@ class MachineSettingsAction(MachineAction): for setting_instance in extruder_user_container.findInstances(): setting_key = setting_instance.definition.key settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder") + if settable_per_extruder: limit_to_extruder = self._global_container_stack.getProperty(setting_key, "limit_to_extruder") @@ -154,11 +155,16 @@ class MachineSettingsAction(MachineAction): global_user_container.setProperty(setting_key, "value", extruder_user_container.getProperty(setting_key, "value")) extruder_user_container.removeInstance(setting_key) - # Check to see if any features are set to print with an extruder that will no longer exist - for setting_key in ["adhesion_extruder_nr", "support_extruder_nr", "support_extruder_nr_layer_0", "support_infill_extruder_nr", "support_interface_extruder_nr"]: - if int(self._global_container_stack.getProperty(setting_key, "value")) > extruder_count - 1: - Logger.log("i", "Lowering %s setting to match number of extruders", setting_key) - self._global_container_stack.getTop().setProperty(setting_key, "value", extruder_count - 1) + # reset all extruder number settings whose value is no longer valid + for setting_instance in self._global_container_stack.userChanges.findInstances(): + setting_key = setting_instance.definition.key + if not self._global_container_stack.getProperty(setting_key, "type") in ("extruder", "optional_extruder"): + continue + + old_value = int(self._global_container_stack.userChanges.getProperty(setting_key, "value")) + if old_value >= extruder_count: + self._global_container_stack.userChanges.removeInstance(setting_key) + Logger.log("d", "Reset [%s] because its old value [%s] is no longer valid ", setting_key, old_value) # Check to see if any objects are set to print with an extruder that will no longer exist root_node = Application.getInstance().getController().getScene().getRoot() @@ -170,7 +176,6 @@ class MachineSettingsAction(MachineAction): node.callDecoration("setActiveExtruder", extruder_manager.getExtruderStack(extruder_count - 1).getId()) definition_changes_container.setProperty("machine_extruder_count", "value", extruder_count) - self.forceUpdate() if extruder_count > 1: # Multiextrusion @@ -215,6 +220,8 @@ class MachineSettingsAction(MachineAction): preferences.setValue("cura/choice_on_profile_override", choice_on_profile_override) + self.forceUpdate() + @pyqtSlot() def forceUpdate(self): diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index b5d6a6e649..5e2e67eed6 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -71,6 +71,7 @@ Cura.MachineAction anchors.topMargin: UM.Theme.getSize("default_margin").height property real columnWidth: ((width - 3 * UM.Theme.getSize("default_margin").width) / 2) | 0 + property real labelColumnWidth: columnWidth * 0.5 Tab { @@ -233,6 +234,7 @@ Cura.MachineAction property string label: catalog.i18nc("@label", "Gantry height") property string unit: catalog.i18nc("@label", "mm") property string tooltip: catalog.i18nc("@tooltip", "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\".") + property bool forceUpdateOnChange: true } Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } @@ -252,7 +254,7 @@ Cura.MachineAction { text: catalog.i18nc("@label", "Number of Extruders") elide: Text.ElideRight - width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - extruderCountComboBox.width) + width: Math.max(0, settingsTabs.labelColumnWidth) anchors.verticalCenter: extruderCountComboBox.verticalCenter } ComboBox @@ -561,7 +563,7 @@ Cura.MachineAction text: _label visible: _label != "" elide: Text.ElideRight - width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - textFieldWithUnit.width) + width: Math.max(0, settingsTabs.labelColumnWidth) anchors.verticalCenter: textFieldWithUnit.verticalCenter } @@ -654,7 +656,7 @@ Cura.MachineAction text: _label visible: _label != "" elide: Text.ElideRight - width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - comboBox.width) + width: Math.max(0, settingsTabs.labelColumnWidth) anchors.verticalCenter: comboBox.verticalCenter } ComboBox @@ -786,7 +788,7 @@ Cura.MachineAction text: _label visible: _label != "" elide: Text.ElideRight - width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - textFieldWithUnit.width) + width: Math.max(0, settingsTabs.labelColumnWidth) anchors.verticalCenter: textFieldWithUnit.verticalCenter } @@ -823,7 +825,7 @@ Cura.MachineAction polygon.push([-printHeadPolygon["x"]["min"], printHeadPolygon["y"]["max"]]); polygon.push([-printHeadPolygon["x"]["min"],-printHeadPolygon["y"]["min"]]); polygon.push([ printHeadPolygon["x"]["max"], printHeadPolygon["y"]["max"]]); - polygon.push([ printHeadPolygon["x"]["max"],-printHeadPolygon["y"]["mìn"]]); + polygon.push([ printHeadPolygon["x"]["max"],-printHeadPolygon["y"]["min"]]); var polygon_string = JSON.stringify(polygon); if(polygon_string != machineHeadPolygonProvider.properties.value) { diff --git a/plugins/MachineSettingsAction/__init__.py b/plugins/MachineSettingsAction/__init__.py index 1c4464e9b2..b1c4a75fec 100644 --- a/plugins/MachineSettingsAction/__init__.py +++ b/plugins/MachineSettingsAction/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import MachineSettingsAction diff --git a/plugins/PerObjectSettingsTool/PerObjectCategory.qml b/plugins/PerObjectSettingsTool/PerObjectCategory.qml index be7af3256d..2dc4ba6326 100644 --- a/plugins/PerObjectSettingsTool/PerObjectCategory.qml +++ b/plugins/PerObjectSettingsTool/PerObjectCategory.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/plugins/PerObjectSettingsTool/PerObjectItem.qml b/plugins/PerObjectSettingsTool/PerObjectItem.qml index b40106abce..559ad2bf81 100644 --- a/plugins/PerObjectSettingsTool/PerObjectItem.qml +++ b/plugins/PerObjectSettingsTool/PerObjectItem.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Layouts 1.1 diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 65159888b0..badca13468 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index a306dd1540..c15431c9e2 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.2 @@ -30,7 +30,7 @@ Item { { // This is to ensure that the panel is first increasing in size up to 200 and then shows a scrollbar. // It kinda looks ugly otherwise (big panel, no content on it) - property int maximumHeight: 200 * Screen.devicePixelRatio + property int maximumHeight: 200 * screenScaleFactor height: Math.min(contents.count * (UM.Theme.getSize("section").height + UM.Theme.getSize("default_lining").height), maximumHeight) ScrollView @@ -38,6 +38,7 @@ Item { height: parent.height width: UM.Theme.getSize("setting").width + UM.Theme.getSize("setting").height style: UM.Theme.styles.scrollview + ListView { id: contents @@ -66,6 +67,7 @@ Item { property var definition: model property var settingDefinitionsModel: addedSettingsModel property var propertyProvider: provider + property var globalPropertyProvider: inheritStackProvider //Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989 //In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes, @@ -133,6 +135,8 @@ Item { } } + // Specialty provider that only watches global_inherits (we cant filter on what property changed we get events + // so we bypass that to make a dedicated provider). UM.SettingPropertyProvider { id: provider @@ -143,6 +147,53 @@ Item { storeIndex: 0 removeUnusedValue: false } + + UM.SettingPropertyProvider + { + id: inheritStackProvider + containerStackId: UM.ActiveTool.properties.getValue("ContainerID") + key: model.key + watchedProperties: [ "limit_to_extruder" ] + } + + Connections + { + target: inheritStackProvider + onPropertiesChanged: + { + provider.forcePropertiesChanged(); + } + } + + Connections + { + target: UM.ActiveTool + onPropertiesChanged: + { + // the values cannot be bound with UM.ActiveTool.properties.getValue() calls, + // so here we connect to the signal and update the those values. + if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined") + { + const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId"); + if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId) + { + addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId; + } + } + if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined") + { + const containerId = UM.ActiveTool.properties.getValue("ContainerID"); + if (provider.containerStackId != containerId) + { + provider.containerStackId = containerId; + } + if (inheritStackProvider.containerStackId != containerId) + { + inheritStackProvider.containerStackId = containerId; + } + } + } + } } } } @@ -195,7 +246,7 @@ Item { id: settingPickDialog title: catalog.i18nc("@title:window", "Select Settings to Customize for this model") - width: Screen.devicePixelRatio * 360; + width: screenScaleFactor * 360; property string labelFilter: "" diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py index b2d14942ba..d0cb53c4f8 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Tool import Tool from UM.Scene.Selection import Selection diff --git a/plugins/PerObjectSettingsTool/__init__.py b/plugins/PerObjectSettingsTool/__init__.py index eb102fde5d..acfc35815e 100644 --- a/plugins/PerObjectSettingsTool/__init__.py +++ b/plugins/PerObjectSettingsTool/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from . import PerObjectSettingsTool from . import PerObjectSettingVisibilityHandler @@ -13,7 +13,7 @@ def getMetaData(): "tool": { "name": i18n_catalog.i18nc("@label", "Per Model Settings"), "description": i18n_catalog.i18nc("@info:tooltip", "Configure Per Model Settings"), - "icon": "setting_per_object", + "icon": "tool_icon.svg", "tool_panel": "PerObjectSettingsPanel.qml", "weight": 3 }, diff --git a/plugins/PerObjectSettingsTool/tool_icon.svg b/plugins/PerObjectSettingsTool/tool_icon.svg new file mode 100644 index 0000000000..4b15eb453f --- /dev/null +++ b/plugins/PerObjectSettingsTool/tool_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 76d4b4d284..37ad128b49 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# PluginBrowser is released under the terms of the AGPLv3 or higher. +# PluginBrowser is released under the terms of the LGPLv3 or higher. from UM.Extension import Extension from UM.i18n import i18nCatalog from UM.Logger import Logger @@ -7,6 +7,7 @@ from UM.Qt.ListModel import ListModel from UM.PluginRegistry import PluginRegistry from UM.Application import Application from UM.Version import Version +from UM.Message import Message from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot @@ -15,15 +16,17 @@ from PyQt5.QtQml import QQmlComponent, QQmlContext import json import os import tempfile +import platform +import zipfile i18n_catalog = i18nCatalog("cura") class PluginBrowser(QObject, Extension): - def __init__(self, parent = None): + def __init__(self, parent=None): super().__init__(parent) - self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) - self._api_version = 1 + + self._api_version = 2 self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version self._plugin_list_request = None @@ -43,12 +46,43 @@ class PluginBrowser(QObject, Extension): self._is_downloading = False - self._request_header = [b"User-Agent", str.encode("%s - %s" % (Application.getInstance().getApplicationName(), Application.getInstance().getVersion()))] + self._request_header = [b"User-Agent", + str.encode("%s/%s (%s %s)" % (Application.getInstance().getApplicationName(), + Application.getInstance().getVersion(), + platform.system(), + platform.machine(), + ) + ) + ] # Installed plugins are really installed after reboot. In order to prevent the user from downloading the # same file over and over again, we keep track of the upgraded plugins. self._newly_installed_plugin_ids = [] + # variables for the license agreement dialog + self._license_dialog_plugin_name = "" + self._license_dialog_license_content = "" + self._license_dialog_plugin_file_location = "" + + showLicenseDialog = pyqtSignal() + + @pyqtSlot(result = str) + def getLicenseDialogPluginName(self): + return self._license_dialog_plugin_name + + @pyqtSlot(result = str) + def getLicenseDialogPluginFileLocation(self): + return self._license_dialog_plugin_file_location + + @pyqtSlot(result = str) + def getLicenseDialogLicenseContent(self): + return self._license_dialog_license_content + + def openLicenseDialog(self, plugin_name, license_content, plugin_file_location): + self._license_dialog_plugin_name = plugin_name + self._license_dialog_license_content = license_content + self._license_dialog_plugin_file_location = plugin_file_location + self.showLicenseDialog.emit() pluginsMetadataChanged = pyqtSignal() onDownloadProgressChanged = pyqtSignal() @@ -58,12 +92,13 @@ class PluginBrowser(QObject, Extension): def isDownloading(self): return self._is_downloading + @pyqtSlot() def browsePlugins(self): self._createNetworkManager() self.requestPluginList() if not self._dialog: - self._createDialog() + self._dialog = self._createDialog("PluginBrowser.qml") self._dialog.show() @pyqtSlot() @@ -74,19 +109,20 @@ class PluginBrowser(QObject, Extension): self._plugin_list_request.setRawHeader(*self._request_header) self._network_manager.get(self._plugin_list_request) - def _createDialog(self): - Logger.log("d", "PluginBrowser") + def _createDialog(self, qml_name): + Logger.log("d", "Creating dialog [%s]", qml_name) - path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "PluginBrowser.qml")) + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), qml_name)) self._qml_component = QQmlComponent(Application.getInstance()._engine, path) # We need access to engine (although technically we can't) self._qml_context = QQmlContext(Application.getInstance()._engine.rootContext()) self._qml_context.setContextProperty("manager", self) - self._dialog = self._qml_component.create(self._qml_context) - if self._dialog is None: + dialog = self._qml_component.create(self._qml_context) + if dialog is None: Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) + return dialog def setIsDownloading(self, is_downloading): if self._is_downloading != is_downloading: @@ -109,17 +145,62 @@ class PluginBrowser(QObject, Extension): self._temp_plugin_file.write(self._download_plugin_reply.readAll()) self._temp_plugin_file.close() - # open as read - if not location.startswith("/"): - location = "/" + location # Ensure that it starts with a /, as otherwise it doesn't work on windows. - result = PluginRegistry.getInstance().installPlugin("file://" + location) + self._checkPluginLicenseOrInstall(location) + return - self._newly_installed_plugin_ids.append(result["id"]) - self.pluginsMetadataChanged.emit() + ## Checks if the downloaded plugin ZIP file contains a license file or not. + # If it does, it will show a popup dialog displaying the license to the user. The plugin will be installed if the + # user accepts the license. + # If there is no license file, the plugin will be directory installed. + def _checkPluginLicenseOrInstall(self, file_path): + with zipfile.ZipFile(file_path, "r") as zip_ref: + plugin_id = None + for file in zip_ref.infolist(): + if file.filename.endswith("/"): + plugin_id = file.filename.strip("/") + break - Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Plugin browser"), result["message"]) + if plugin_id is None: + msg = i18n_catalog.i18nc("@info:status", "Failed to get plugin ID from {0}", file_path) + msg_title = i18n_catalog.i18nc("@info:tile", "Warning") + self._progress_message = Message(msg, lifetime=0, dismissable=False, title = msg_title) + return - self._temp_plugin_file.close() # Plugin was installed, delete temp file + # find a potential license file + plugin_root_dir = plugin_id + "/" + license_file = None + for f in zip_ref.infolist(): + # skip directories (with file_size = 0) and files not in the plugin directory + if f.file_size == 0 or not f.filename.startswith(plugin_root_dir): + continue + file_name = os.path.basename(f.filename).lower() + file_base_name, file_ext = os.path.splitext(file_name) + if file_base_name in ["license", "licence"]: + license_file = f.filename + break + + # show a dialog for user to read and accept/decline the license + if license_file is not None: + Logger.log("i", "Found license file for plugin [%s], showing the license dialog to the user", plugin_id) + license_content = zip_ref.read(license_file).decode('utf-8') + self.openLicenseDialog(plugin_id, license_content, file_path) + return + + # there is no license file, directly install the plugin + self.installPlugin(file_path) + + @pyqtSlot(str) + def installPlugin(self, file_path): + if not file_path.startswith("/"): + location = "/" + file_path # Ensure that it starts with a /, as otherwise it doesn't work on windows. + else: + location = file_path + result = PluginRegistry.getInstance().installPlugin("file://" + location) + + self._newly_installed_plugin_ids.append(result["id"]) + self.pluginsMetadataChanged.emit() + + Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Plugin browser"), result["message"]) @pyqtProperty(int, notify = onDownloadProgressChanged) def downloadProgress(self): @@ -246,4 +327,4 @@ class PluginBrowser(QObject, Extension): self._network_manager = QNetworkAccessManager() self._network_manager.finished.connect(self._onRequestFinished) - self._network_manager.networkAccessibleChanged.connect(self._onNetworkAccesibleChanged) \ No newline at end of file + self._network_manager.networkAccessibleChanged.connect(self._onNetworkAccesibleChanged) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 7d7ade5d95..13000d23ad 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -9,8 +9,10 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Find & Update plugins") - width: 600 - height: 450 + width: 600 * screenScaleFactor + height: 450 * screenScaleFactor + minimumWidth: 350 * screenScaleFactor + minimumHeight: 350 * screenScaleFactor Item { anchors.fill: parent @@ -58,7 +60,7 @@ UM.Dialog id: bottomBar width: parent.width height: closeButton.height - anchors.bottom:parent.bottom + anchors.bottom: parent.bottom anchors.left: parent.left ProgressBar { @@ -112,7 +114,7 @@ UM.Dialog anchors.rightMargin: UM.Theme.getSize("default_margin").width Label { - text: "" + model.name + " - " + model.author + text: "" + model.name + "" + ((model.author !== "") ? (" - " + model.author) : "") width: contentWidth height: contentHeight + UM.Theme.getSize("default_margin").height verticalAlignment: Text.AlignVCenter @@ -177,6 +179,84 @@ UM.Dialog } } - UM.I18nCatalog { id: catalog; name:"cura" } + UM.I18nCatalog { id: catalog; name: "cura" } + + Connections + { + target: manager + onShowLicenseDialog: + { + licenseDialog.pluginName = manager.getLicenseDialogPluginName(); + licenseDialog.licenseContent = manager.getLicenseDialogLicenseContent(); + licenseDialog.pluginFileLocation = manager.getLicenseDialogPluginFileLocation(); + licenseDialog.show(); + } + } + + UM.Dialog + { + id: licenseDialog + title: catalog.i18nc("@title:window", "Plugin License Agreement") + + minimumWidth: UM.Theme.getSize("license_window_minimum").width + minimumHeight: UM.Theme.getSize("license_window_minimum").height + width: minimumWidth + height: minimumHeight + + property var pluginName; + property var licenseContent; + property var pluginFileLocation; + + Item + { + anchors.fill: parent + + Label + { + id: licenseTitle + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + text: licenseDialog.pluginName + catalog.i18nc("@label", "This plugin contains a license.\nYou need to accept this license to install this plugin.\nDo you agree with the terms below?") + wrapMode: Text.Wrap + } + + TextArea + { + id: licenseText + anchors.top: licenseTitle.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: UM.Theme.getSize("default_margin").height + readOnly: true + text: licenseDialog.licenseContent != null ? licenseDialog.licenseContent : "" + } + } + + rightButtons: [ + Button + { + id: acceptButton + anchors.margins: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@action:button", "Accept") + onClicked: + { + licenseDialog.close(); + manager.installPlugin(licenseDialog.pluginFileLocation); + } + }, + Button + { + id: declineButton + anchors.margins: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@action:button", "Decline") + onClicked: + { + licenseDialog.close(); + } + } + ] + } } -} \ No newline at end of file +} diff --git a/plugins/PluginBrowser/__init__.py b/plugins/PluginBrowser/__init__.py index 19013bd06d..d414c36a99 100644 --- a/plugins/PluginBrowser/__init__.py +++ b/plugins/PluginBrowser/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# PluginBrowser is released under the terms of the AGPLv3 or higher. +# PluginBrowser is released under the terms of the LGPLv3 or higher. from . import PluginBrowser diff --git a/plugins/RemovableDriveOutputDevice/LinuxRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/LinuxRemovableDrivePlugin.py index 46e3dafb71..cf889ebb12 100644 --- a/plugins/RemovableDriveOutputDevice/LinuxRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/LinuxRemovableDrivePlugin.py @@ -1,6 +1,6 @@ # Copyright (c) 2015 Ultimaker B.V. # Copyright (c) 2013 David Braam -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from . import RemovableDrivePlugin diff --git a/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py index 6d8b5021ae..5ad2caed0b 100644 --- a/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py @@ -1,11 +1,9 @@ # Copyright (c) 2015 Ultimaker B.V. # Copyright (c) 2013 David Braam -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from . import RemovableDrivePlugin -from UM.Logger import Logger - import subprocess import os @@ -15,12 +13,12 @@ import plistlib class OSXRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin): def checkRemovableDrives(self): drives = {} - p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE) + p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE, stderr = subprocess.PIPE) plist = plistlib.loads(p.communicate()[0]) result = self._recursiveSearch(plist, "removable_media") - p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE) + p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE, stderr = subprocess.PIPE) plist = plistlib.loads(p.communicate()[0]) result.extend(self._recursiveSearch(plist, "removable_media")) diff --git a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py index c5c18f9709..ff930e2c31 100644 --- a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py +++ b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path @@ -60,7 +60,7 @@ class RemovableDriveOutputDevice(OutputDevice): if len(file_formats) == 0: Logger.log("e", "There are no file formats available to write with!") - raise OutputDeviceError.WriteRequestFailedError() + raise OutputDeviceError.WriteRequestFailedError(catalog.i18nc("There are no file formats available to write with!")) # Just take the first file format available. if file_handler is not None: @@ -86,7 +86,7 @@ class RemovableDriveOutputDevice(OutputDevice): job.progress.connect(self._onProgress) job.finished.connect(self._onFinished) - message = Message(catalog.i18nc("@info:progress", "Saving to Removable Drive {0}").format(self.getName()), 0, False, -1) + message = Message(catalog.i18nc("@info:progress Don't translate the XML tags !", "Saving to Removable Drive {0}").format(self.getName()), 0, False, -1, catalog.i18nc("@info:title", "Saving")) message.show() self.writeStarted.emit(self) @@ -96,10 +96,10 @@ class RemovableDriveOutputDevice(OutputDevice): job.start() except PermissionError as e: Logger.log("e", "Permission denied when trying to write to %s: %s", file_name, str(e)) - raise OutputDeviceError.PermissionDeniedError(catalog.i18nc("@info:status", "Could not save to {0}: {1}").format(file_name, str(e))) from e + raise OutputDeviceError.PermissionDeniedError(catalog.i18nc("@info:status Don't translate the XML tags or !", "Could not save to {0}: {1}").format(file_name, str(e))) from e except OSError as e: Logger.log("e", "Operating system would not let us write to %s: %s", file_name, str(e)) - raise OutputDeviceError.WriteRequestFailedError(catalog.i18nc("@info:status", "Could not save to {0}: {1}").format(file_name, str(e))) from e + raise OutputDeviceError.WriteRequestFailedError(catalog.i18nc("@info:status Don't translate the XML tags or !", "Could not save to {0}: {1}").format(file_name, str(e))) from e ## Generate a file name automatically for the specified nodes to be saved # in. @@ -115,7 +115,7 @@ class RemovableDriveOutputDevice(OutputDevice): name = child.getName() if name: return name - raise OutputDeviceError.WriteRequestFailedError("Could not find a file name when trying to write to {device}.".format(device = self.getName())) + raise OutputDeviceError.WriteRequestFailedError(catalog.i18nc("@info:status Don't translate the tag {device}!", "Could not find a file name when trying to write to {device}.").format(device = self.getName())) def _onProgress(self, job, progress): self.writeProgress.emit(self, progress) @@ -123,19 +123,27 @@ class RemovableDriveOutputDevice(OutputDevice): def _onFinished(self, job): if self._stream: # Explicitly closing the stream flushes the write-buffer - self._stream.close() - self._stream = None + try: + self._stream.close() + self._stream = None + except: + Logger.logException("w", "An execption occured while trying to write to removable drive.") + message = Message(catalog.i18nc("@info:status", "Could not save to removable drive {0}: {1}").format(self.getName(),str(job.getError())), + title = catalog.i18nc("@info:title", "Error")) + message.show() + self.writeError.emit(self) + return self._writing = False self.writeFinished.emit(self) if job.getResult(): - message = Message(catalog.i18nc("@info:status", "Saved to Removable Drive {0} as {1}").format(self.getName(), os.path.basename(job.getFileName()))) + message = Message(catalog.i18nc("@info:status", "Saved to Removable Drive {0} as {1}").format(self.getName(), os.path.basename(job.getFileName())), title = catalog.i18nc("@info:title", "File Saved")) message.addAction("eject", catalog.i18nc("@action:button", "Eject"), "eject", catalog.i18nc("@action", "Eject removable device {0}").format(self.getName())) message.actionTriggered.connect(self._onActionTriggered) message.show() self.writeSuccess.emit(self) else: - message = Message(catalog.i18nc("@info:status", "Could not save to removable drive {0}: {1}").format(self.getName(), str(job.getError()))) + message = Message(catalog.i18nc("@info:status", "Could not save to removable drive {0}: {1}").format(self.getName(), str(job.getError())), title = catalog.i18nc("@info:title", "Warning")) message.show() self.writeError.emit(self) job.getStream().close() @@ -145,7 +153,7 @@ class RemovableDriveOutputDevice(OutputDevice): if Application.getInstance().getOutputDeviceManager().getOutputDevicePlugin("RemovableDriveOutputDevice").ejectDevice(self): message.hide() - eject_message = Message(catalog.i18nc("@info:status", "Ejected {0}. You can now safely remove the drive.").format(self.getName())) + eject_message = Message(catalog.i18nc("@info:status", "Ejected {0}. You can now safely remove the drive.").format(self.getName()), title = catalog.i18nc("@info:title", "Safely Remove Hardware")) else: - eject_message = Message(catalog.i18nc("@info:status", "Failed to eject {0}. Another program may be using the drive.").format(self.getName())) + eject_message = Message(catalog.i18nc("@info:status", "Failed to eject {0}. Another program may be using the drive.").format(self.getName()), title = catalog.i18nc("@info:title", "Warning")) eject_message.show() diff --git a/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py index 2fbd554849..d59d1296e3 100644 --- a/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py @@ -1,15 +1,18 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +# Python built-ins import threading import time -from UM.Message import Message -from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin +# Uranium/Messaging from UM.Logger import Logger +# Uranium/IO +from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin from . import RemovableDriveOutputDevice -from UM.Logger import Logger + +# Uranium/l18n from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") diff --git a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py index 1c15990bf1..7a3e1ab5c1 100644 --- a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py @@ -1,6 +1,6 @@ # Copyright (c) 2015 Ultimaker B.V. # Copyright (c) 2013 David Braam -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from . import RemovableDrivePlugin import string diff --git a/plugins/RemovableDriveOutputDevice/__init__.py b/plugins/RemovableDriveOutputDevice/__init__.py index 8b46074066..dc547b7bcc 100644 --- a/plugins/RemovableDriveOutputDevice/__init__.py +++ b/plugins/RemovableDriveOutputDevice/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Platform import Platform from UM.Logger import Logger diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 0af9c85607..0514c4dacf 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from cura.CuraApplication import CuraApplication from cura.Settings.ExtruderManager import ExtruderManager @@ -40,7 +40,11 @@ class SliceInfo(Extension): Preferences.getInstance().addPreference("info/asked_send_slice_info", False) if not Preferences.getInstance().getValue("info/asked_send_slice_info"): - self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymised slicing statistics. You can disable this in the preferences."), lifetime = 0, dismissable = False) + self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymised slicing statistics. You can disable this in the preferences."), + lifetime = 0, + dismissable = False, + title = catalog.i18nc("@info:title", "Collecting Data")) + self.send_slice_info_message.addAction("Dismiss", catalog.i18nc("@action:button", "Dismiss"), None, "") self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered) self.send_slice_info_message.show() @@ -69,15 +73,26 @@ class SliceInfo(Extension): else: data["active_mode"] = "custom" - data["machine_settings_changed_by_user"] = global_container_stack.definitionChanges.getId() != "empty" + definition_changes = global_container_stack.definitionChanges + machine_settings_changed_by_user = False + if definition_changes.getId() != "empty": + # Now a definition_changes container will always be created for a stack, + # so we also need to check if there is any instance in the definition_changes container + if definition_changes.getAllKeys(): + machine_settings_changed_by_user = True + + data["machine_settings_changed_by_user"] = machine_settings_changed_by_user data["language"] = Preferences.getInstance().getValue("general/language") data["os"] = {"type": platform.system(), "version": platform.version()} data["active_machine"] = {"definition_id": global_container_stack.definition.getId(), "manufacturer": global_container_stack.definition.getMetaData().get("manufacturer","")} data["extruders"] = [] - extruders = list(ExtruderManager.getInstance().getMachineExtruders(global_container_stack.getId())) - extruders = sorted(extruders, key = lambda extruder: extruder.getMetaDataEntry("position")) + extruder_count = len(global_container_stack.extruders) + extruders = [] + if extruder_count > 1: + extruders = list(ExtruderManager.getInstance().getMachineExtruders(global_container_stack.getId())) + extruders = sorted(extruders, key = lambda extruder: extruder.getMetaDataEntry("position")) if not extruders: extruders = [global_container_stack] @@ -147,7 +162,7 @@ class SliceInfo(Extension): data["models"].append(model) - print_times = print_information.printTimesPerFeature + print_times = print_information._print_time_message_values data["print_times"] = {"travel": int(print_times["travel"].getDisplayString(DurationFormat.Format.Seconds)), "support": int(print_times["support"].getDisplayString(DurationFormat.Format.Seconds)), "infill": int(print_times["infill"].getDisplayString(DurationFormat.Format.Seconds)), @@ -179,6 +194,9 @@ class SliceInfo(Extension): data["print_settings"] = print_settings + # Send the name of the output device type that is used. + data["output_to"] = type(output_device).__name__ + # Convert data to bytes binary_data = json.dumps(data).encode("utf-8") diff --git a/plugins/SliceInfoPlugin/SliceInfoJob.py b/plugins/SliceInfoPlugin/SliceInfoJob.py index 0ef390d058..a5667c1c13 100644 --- a/plugins/SliceInfoPlugin/SliceInfoJob.py +++ b/plugins/SliceInfoPlugin/SliceInfoJob.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Job import Job from UM.Logger import Logger from UM.Platform import Platform diff --git a/plugins/SliceInfoPlugin/__init__.py b/plugins/SliceInfoPlugin/__init__.py index 90ecfcef17..7f1dfa5336 100644 --- a/plugins/SliceInfoPlugin/__init__.py +++ b/plugins/SliceInfoPlugin/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import SliceInfo from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 04a0afd77b..8f0c9a4dc1 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.View.View import View from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator diff --git a/plugins/SolidView/__init__.py b/plugins/SolidView/__init__.py index 67b15eb617..db2e48f489 100644 --- a/plugins/SolidView/__init__.py +++ b/plugins/SolidView/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import SolidView @@ -9,7 +9,7 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { "view": { - "name": i18n_catalog.i18nc("@item:inmenu", "Solid"), + "name": i18n_catalog.i18nc("@item:inmenu", "Solid view"), "weight": 0 } } diff --git a/plugins/UM3NetworkPrinting/ClusterControlItem.qml b/plugins/UM3NetworkPrinting/ClusterControlItem.qml new file mode 100644 index 0000000000..8ba7156da8 --- /dev/null +++ b/plugins/UM3NetworkPrinting/ClusterControlItem.qml @@ -0,0 +1,237 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +Component +{ + Rectangle + { + id: base + property var manager: Cura.MachineManager.printerOutputDevices[0] + anchors.fill: parent + color: UM.Theme.getColor("viewport_background") + + property var lineColor: "#DCDCDC" // TODO: Should be linked to theme. + property var cornerRadius: 4 * screenScaleFactor // TODO: Should be linked to theme. + + visible: manager != null + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + Label + { + id: activePrintersLabel + font: UM.Theme.getFont("large") + anchors.horizontalCenter: parent.horizontalCenter + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.top: parent.top + text: Cura.MachineManager.printerOutputDevices[0].name + } + + Rectangle + { + id: printJobArea + border.width: UM.Theme.getSize("default_lining").width + border.color: lineColor + anchors.top: activePrintersLabel.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + anchors.rightMargin:UM.Theme.getSize("default_margin").width + radius: cornerRadius + height: childrenRect.height + + Item + { + id: printJobTitleBar + width: parent.width + height: printJobTitleLabel.height + 2 * UM.Theme.getSize("default_margin").height + + Label + { + id: printJobTitleLabel + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + text: catalog.i18nc("@title", "Print jobs") + font: UM.Theme.getFont("default") + opacity: 0.75 + } + Rectangle + { + anchors.bottom: parent.bottom + height: UM.Theme.getSize("default_lining").width + color: lineColor + width: parent.width + } + } + + Column + { + id: printJobColumn + anchors.top: printJobTitleBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + Item + { + width: parent.width + height: childrenRect.height + opacity: 0.65 + Label + { + text: catalog.i18nc("@label", "Printing") + font: UM.Theme.getFont("very_small") + + } + Label + { + text: manager.numJobsPrinting + font: UM.Theme.getFont("small") + anchors.right: parent.right + } + } + Item + { + width: parent.width + height: childrenRect.height + opacity: 0.65 + Label + { + text: catalog.i18nc("@label", "Queued") + font: UM.Theme.getFont("very_small") + } + Label + { + text: manager.numJobsQueued + font: UM.Theme.getFont("small") + anchors.right: parent.right + } + } + } + OpenPanelButton + { + anchors.top: printJobColumn.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: UM.Theme.getSize("default_margin").height + id: configButton + onClicked: base.manager.openPrintJobControlPanel() + text: catalog.i18nc("@action:button", "View print jobs") + } + + Item + { + // spacer + anchors.top: configButton.bottom + width: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("default_margin").height + } + } + + + Rectangle + { + id: printersArea + border.width: UM.Theme.getSize("default_lining").width + border.color: lineColor + anchors.top: printJobArea.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + anchors.rightMargin:UM.Theme.getSize("default_margin").width + radius: cornerRadius + height: childrenRect.height + + Item + { + id: printersTitleBar + width: parent.width + height: printJobTitleLabel.height + 2 * UM.Theme.getSize("default_margin").height + + Label + { + id: printersTitleLabel + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + text: catalog.i18nc("@label:title", "Printers") + font: UM.Theme.getFont("default") + opacity: 0.75 + } + Rectangle + { + anchors.bottom: parent.bottom + height: UM.Theme.getSize("default_lining").width + color: lineColor + width: parent.width + } + } + Column + { + id: printersColumn + anchors.top: printersTitleBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + Repeater + { + model: manager.connectedPrintersTypeCount + Item + { + width: parent.width + height: childrenRect.height + opacity: 0.65 + Label + { + text: modelData.machine_type + font: UM.Theme.getFont("very_small") + } + + Label + { + text: modelData.count + font: UM.Theme.getFont("small") + anchors.right: parent.right + } + } + } + } + OpenPanelButton + { + anchors.top: printersColumn.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: UM.Theme.getSize("default_margin").height + id: printerConfigButton + onClicked: base.manager.openPrinterControlPanel() + + text: catalog.i18nc("@action:button", "View printers") + } + + Item + { + // spacer + anchors.top: printerConfigButton.bottom + width: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("default_margin").height + } + } + } +} diff --git a/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml new file mode 100644 index 0000000000..e78c7d1cc9 --- /dev/null +++ b/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml @@ -0,0 +1,102 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +Component +{ + Rectangle + { + width: maximumWidth + height: maximumHeight + color: UM.Theme.getColor("viewport_background") + + property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") + property var lineColor: "#DCDCDC" // TODO: Should be linked to theme. + property var cornerRadius: 4 * screenScaleFactor // TODO: Should be linked to theme. + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + Label + { + id: activePrintersLabel + font: UM.Theme.getFont("large") + + anchors { + top: parent.top + topMargin: UM.Theme.getSize("default_margin").height * 2 // a bit more spacing to give it some breathing room + horizontalCenter: parent.horizontalCenter + } + + text: OutputDevice.connectedPrinters.length == 0 ? catalog.i18nc("@label: arg 1 is group name", "%1 is not set up to host a group of connected Ultimaker 3 printers").arg(Cura.MachineManager.printerOutputDevices[0].name) : "" + + visible: OutputDevice.connectedPrinters.length == 0 + } + + Item + { + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + + width: Math.min(800 * screenScaleFactor, maximumWidth) + height: children.height + visible: OutputDevice.connectedPrinters.length != 0 + + Label + { + id: addRemovePrintersLabel + anchors.right: parent.right + text: "Add / remove printers" + } + + MouseArea + { + anchors.fill: addRemovePrintersLabel + onClicked: Cura.MachineManager.printerOutputDevices[0].openPrinterControlPanel() + } + } + + + ScrollView + { + id: printerScrollView + anchors.margins: UM.Theme.getSize("default_margin").width + anchors.top: activePrintersLabel.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_lining").width // To ensure border can be drawn. + anchors.rightMargin: UM.Theme.getSize("default_lining").width + anchors.right: parent.right + + ListView + { + anchors.fill: parent + spacing: -UM.Theme.getSize("default_lining").height + + model: OutputDevice.connectedPrinters + + delegate: PrinterInfoBlock + { + printer: modelData + width: Math.min(800 * screenScaleFactor, maximumWidth) + height: 125 * screenScaleFactor + + // Add a 1 pix margin, as the border is sometimes cut off otherwise. + anchors.horizontalCenter: parent.horizontalCenter + } + } + } + + PrinterVideoStream + { + visible: OutputDevice.selectedPrinterName != "" + anchors.fill:parent + } + } +} diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index 58f155533f..cec2bf0f0f 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -114,7 +114,7 @@ Cura.MachineAction Column { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) spacing: UM.Theme.getSize("default_margin").height ScrollView @@ -191,8 +191,6 @@ Cura.MachineAction anchors.left: parent.left anchors.right: parent.right wrapMode: Text.WordWrap - //: Tips label - //TODO: get actual link from webteam text: catalog.i18nc("@label", "If your printer is not listed, read the network printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting"); onLinkActivated: Qt.openUrlExternally(link) } @@ -200,7 +198,7 @@ Cura.MachineAction } Column { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) visible: base.selectedPrinter ? true : false spacing: UM.Theme.getSize("default_margin").height Label @@ -218,13 +216,13 @@ Cura.MachineAction columns: 2 Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Type") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: { @@ -249,29 +247,51 @@ Cura.MachineAction } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Firmware version") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.firmwareVersion : "" } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Address") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.ipAddress : "" } } + + Label + { + width: parent.width + wrapMode: Text.WordWrap + text:{ + // The property cluster size does not exist for older UM3 devices. + if(!base.selectedPrinter || base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1) + { + return ""; + } + else if (base.selectedPrinter.clusterSize === 0) + { + return catalog.i18nc("@label", "This printer is not set up to host a group of Ultimaker 3 printers."); + } + else + { + return catalog.i18nc("@label", "This printer is the host for a group of %1 Ultimaker 3 printers.".arg(base.selectedPrinter.clusterSize)); + } + } + + } Label { width: parent.width @@ -298,8 +318,8 @@ Cura.MachineAction title: catalog.i18nc("@title:window", "Printer Address") - minimumWidth: 400 * Screen.devicePixelRatio - minimumHeight: 120 * Screen.devicePixelRatio + minimumWidth: 400 * screenScaleFactor + minimumHeight: 130 * screenScaleFactor width: minimumWidth height: minimumHeight @@ -356,7 +376,7 @@ Cura.MachineAction }, Button { id: btnOk - text: catalog.i18nc("@action:button", "Ok") + text: catalog.i18nc("@action:button", "OK") onClicked: { manualPrinterDialog.accept() @@ -367,4 +387,4 @@ Cura.MachineAction } ] } -} \ No newline at end of file +} diff --git a/plugins/UM3NetworkPrinting/MonitorItem.qml b/plugins/UM3NetworkPrinting/MonitorItem.qml index d3803ea877..f69df41dd4 100644 --- a/plugins/UM3NetworkPrinting/MonitorItem.qml +++ b/plugins/UM3NetworkPrinting/MonitorItem.qml @@ -9,9 +9,20 @@ Component Image { id: cameraImage - width: sourceSize.width - height: sourceSize.height * width / sourceSize.width + property bool proportionalHeight: + { + if(sourceSize.height == 0 || maximumHeight == 0) + { + return true; + } + return (sourceSize.width / sourceSize.height) > (maximumWidth / maximumHeight); + } + property real _width: Math.floor(Math.min(maximumWidth, sourceSize.width)) + property real _height: Math.floor(Math.min(maximumHeight, sourceSize.height)) + width: proportionalHeight ? _width : Math.floor(sourceSize.width * _height / sourceSize.height) + height: !proportionalHeight ? _height : Math.floor(sourceSize.height * _width / sourceSize.width) anchors.horizontalCenter: parent.horizontalCenter + onVisibleChanged: { if(visible) diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py new file mode 100644 index 0000000000..b6e94121f8 --- /dev/null +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -0,0 +1,725 @@ +import datetime +import getpass +import gzip +import json +import os +import os.path +import time + +from enum import Enum +from PyQt5.QtNetwork import QNetworkRequest, QHttpPart, QHttpMultiPart +from PyQt5.QtCore import QUrl, QByteArray, pyqtSlot, pyqtProperty, QCoreApplication, QTimer, pyqtSignal, QObject +from PyQt5.QtGui import QDesktopServices +from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply +from PyQt5.QtQml import QQmlComponent, QQmlContext +from UM.Application import Application +from UM.Decorators import override +from UM.Logger import Logger +from UM.Message import Message +from UM.OutputDevice import OutputDeviceError +from UM.i18n import i18nCatalog +from UM.Qt.Duration import Duration, DurationFormat +from UM.PluginRegistry import PluginRegistry + +from . import NetworkPrinterOutputDevice + + +i18n_catalog = i18nCatalog("cura") + + +class OutputStage(Enum): + ready = 0 + uploading = 2 + + +class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinterOutputDevice): + printJobsChanged = pyqtSignal() + printersChanged = pyqtSignal() + selectedPrinterChanged = pyqtSignal() + + def __init__(self, key, address, properties, api_prefix): + super().__init__(key, address, properties, api_prefix) + # Store the address of the master. + self._master_address = address + name_property = properties.get(b"name", b"") + if name_property: + name = name_property.decode("utf-8") + else: + name = key + + self._authentication_state = NetworkPrinterOutputDevice.AuthState.Authenticated # The printer is always authenticated + + self.setName(name) + description = i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network") + self.setShortDescription(description) + self.setDescription(description) + + self._stage = OutputStage.ready + host_override = os.environ.get("CLUSTER_OVERRIDE_HOST", "") + if host_override: + Logger.log( + "w", + "Environment variable CLUSTER_OVERRIDE_HOST is set to [%s], cluster hosts are now set to this host", + host_override) + self._host = "http://" + host_override + else: + self._host = "http://" + address + + # is the same as in NetworkPrinterOutputDevicePlugin + self._cluster_api_version = "1" + self._cluster_api_prefix = "/cluster-api/v" + self._cluster_api_version + "/" + self._api_base_uri = self._host + self._cluster_api_prefix + + self._file_name = None + self._progress_message = None + self._request = None + self._reply = None + + # The main reason to keep the 'multipart' form data on the object + # is to prevent the Python GC from claiming it too early. + self._multipart = None + + self._print_view = None + self._request_job = [] + + self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ClusterMonitorItem.qml") + self._control_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ClusterControlItem.qml") + + self._print_jobs = [] + self._print_job_by_printer_uuid = {} + self._print_job_by_uuid = {} # Print jobs by their own uuid + self._printers = [] + self._printers_dict = {} # by unique_name + + self._connected_printers_type_count = [] + self._automatic_printer = {"unique_name": "", "friendly_name": "Automatic"} # empty unique_name IS automatic selection + self._selected_printer = self._automatic_printer + + self._cluster_status_update_timer = QTimer() + self._cluster_status_update_timer.setInterval(5000) + self._cluster_status_update_timer.setSingleShot(False) + self._cluster_status_update_timer.timeout.connect(self._requestClusterStatus) + + self._can_pause = True + self._can_abort = True + self._can_pre_heat_bed = False + self._can_control_manually = False + self._cluster_size = int(properties.get(b"cluster_size", 0)) + + self._cleanupRequest() + + #These are texts that are to be translated for future features. + temporary_translation = i18n_catalog.i18n("This printer is not set up to host a group of connected Ultimaker 3 printers.") + temporary_translation2 = i18n_catalog.i18nc("Count is number of printers.", "This printer is the host for a group of {count} connected Ultimaker 3 printers.").format(count = 3) + temporary_translation3 = i18n_catalog.i18n("{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate.") #When finished. + temporary_translation4 = i18n_catalog.i18n("{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing.") #When configuration changed. + + ## No authentication, so requestAuthentication should do exactly nothing + @pyqtSlot() + def requestAuthentication(self, message_id = None, action_id = "Retry"): + pass # Cura Connect doesn't do any authorization + + def setAuthenticationState(self, auth_state): + self._authentication_state = NetworkPrinterOutputDevice.AuthState.Authenticated # The printer is always authenticated + + def _verifyAuthentication(self): + pass + + def _checkAuthentication(self): + Logger.log("d", "_checkAuthentication Cura Connect - nothing to be done") + + @pyqtProperty(QObject, notify=selectedPrinterChanged) + def controlItem(self): + # TODO: Probably not the nicest way to do this. This needs to be done better at some point in time. + if not self._control_component: + self._createControlViewFromQML() + name = self._selected_printer.get("friendly_name") + if name == self._automatic_printer.get("friendly_name") or name == "": + return self._control_item + # Let cura use the default. + return None + + @pyqtSlot(int, result = str) + def getTimeCompleted(self, time_remaining): + current_time = time.time() + datetime_completed = datetime.datetime.fromtimestamp(current_time + time_remaining) + return "{hour:02d}:{minute:02d}".format(hour = datetime_completed.hour, minute = datetime_completed.minute) + + @pyqtSlot(int, result = str) + def getDateCompleted(self, time_remaining): + current_time = time.time() + datetime_completed = datetime.datetime.fromtimestamp(current_time + time_remaining) + return (datetime_completed.strftime("%a %b ") + "{day}".format(day=datetime_completed.day)).upper() + + @pyqtProperty(int, constant = True) + def clusterSize(self): + return self._cluster_size + + @pyqtProperty(str, notify=selectedPrinterChanged) + def name(self): + # Show the name of the selected printer. + # This is not the nicest way to do this, but changes to the Cura UI are required otherwise. + name = self._selected_printer.get("friendly_name") + if name != self._automatic_printer.get("friendly_name"): + return name + # Return name of cluster master. + return self._properties.get(b"name", b"").decode("utf-8") + + def connect(self): + super().connect() + self._cluster_status_update_timer.start() + + def close(self): + super().close() + self._cluster_status_update_timer.stop() + + def _setJobState(self, job_state): + if not self._selected_printer: + return + + selected_printer_uuid = self._printers_dict[self._selected_printer["unique_name"]]["uuid"] + if selected_printer_uuid not in self._print_job_by_printer_uuid: + return + + print_job_uuid = self._print_job_by_printer_uuid[selected_printer_uuid]["uuid"] + + url = QUrl(self._api_base_uri + "print_jobs/" + print_job_uuid + "/action") + put_request = QNetworkRequest(url) + put_request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + data = '{"action": "' + job_state + '"}' + self._manager.put(put_request, data.encode()) + + def _requestClusterStatus(self): + # TODO: Handle timeout. We probably want to know if the cluster is still reachable or not. + url = QUrl(self._api_base_uri + "printers/") + printers_request = QNetworkRequest(url) + self._addUserAgentHeader(printers_request) + self._manager.get(printers_request) + # See _finishedPrintersRequest() + + if self._printers: # if printers is not empty + url = QUrl(self._api_base_uri + "print_jobs/") + print_jobs_request = QNetworkRequest(url) + self._addUserAgentHeader(print_jobs_request) + self._manager.get(print_jobs_request) + # See _finishedPrintJobsRequest() + + def _finishedPrintJobsRequest(self, reply): + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.decoder.JSONDecodeError: + Logger.log("w", "Received an invalid print job state message: Not valid JSON.") + return + self.setPrintJobs(json_data) + + def _finishedPrintersRequest(self, reply): + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.decoder.JSONDecodeError: + Logger.log("w", "Received an invalid print job state message: Not valid JSON.") + return + self.setPrinters(json_data) + + def materialHotendChangedMessage(self, callback): + # When there is just one printer, the activate configuration option is enabled + if (self._cluster_size == 1): + super().materialHotendChangedMessage(callback = callback) + + def _startCameraStream(self): + ## Request new image + url = QUrl("http://" + self._printers_dict[self._selected_printer["unique_name"]]["ip_address"] + ":8080/?action=stream") + self._image_request = QNetworkRequest(url) + self._addUserAgentHeader(self._image_request) + self._image_reply = self._manager.get(self._image_request) + self._image_reply.downloadProgress.connect(self._onStreamDownloadProgress) + + def spawnPrintView(self): + if self._print_view is None: + path = QUrl.fromLocalFile(os.path.join(self._plugin_path, "PrintWindow.qml")) + component = QQmlComponent(Application.getInstance()._engine, path) + + self._print_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._print_context.setContextProperty("OutputDevice", self) + self._print_view = component.create(self._print_context) + + if component.isError(): + Logger.log("e", " Errors creating component: \n%s", "\n".join( + [e.toString() for e in component.errors()])) + + if self._print_view is not None: + self._print_view.show() + + ## Store job info, show Print view for settings + def requestWrite(self, nodes, file_name=None, filter_by_machine=False, file_handler=None, **kwargs): + self._selected_printer = self._automatic_printer # reset to default option + self._request_job = [nodes, file_name, filter_by_machine, file_handler, kwargs] + + if self._stage != OutputStage.ready: + if self._error_message: + self._error_message.hide() + self._error_message = Message( + i18n_catalog.i18nc("@info:status", + "Sending new jobs (temporarily) blocked, still sending the previous print job.")) + self._error_message.show() + return + + if len(self._printers) > 1: + self.spawnPrintView() # Ask user how to print it. + elif len(self._printers) == 1: + # If there is only one printer, don't bother asking. + self.selectAutomaticPrinter() + self.sendPrintJob() + else: + # Cluster has no printers, warn the user of this. + if self._error_message: + self._error_message.hide() + self._error_message = Message( + i18n_catalog.i18nc("@info:status", + "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers.")) + self._error_message.show() + + ## Actually send the print job, called from the dialog + # :param: require_printer_name: name of printer, or "" + @pyqtSlot() + def sendPrintJob(self): + nodes, file_name, filter_by_machine, file_handler, kwargs = self._request_job + require_printer_name = self._selected_printer["unique_name"] + + self._send_gcode_start = time.time() + Logger.log("d", "Sending print job [%s] to host..." % file_name) + + if self._stage != OutputStage.ready: + Logger.log("d", "Unable to send print job as the state is %s", self._stage) + raise OutputDeviceError.DeviceBusyError() + self._stage = OutputStage.uploading + + self._file_name = "%s.gcode.gz" % file_name + self._showProgressMessage() + + new_request = self._buildSendPrintJobHttpRequest(require_printer_name) + if new_request is None or self._stage != OutputStage.uploading: + return + self._request = new_request + self._reply = self._manager.post(self._request, self._multipart) + self._reply.uploadProgress.connect(self._onUploadProgress) + # See _finishedPostPrintJobRequest() + + def _buildSendPrintJobHttpRequest(self, require_printer_name): + api_url = QUrl(self._api_base_uri + "print_jobs/") + request = QNetworkRequest(api_url) + # Create multipart request and add the g-code. + self._multipart = QHttpMultiPart(QHttpMultiPart.FormDataType) + + # Add gcode + part = QHttpPart() + part.setHeader(QNetworkRequest.ContentDispositionHeader, + 'form-data; name="file"; filename="%s"' % self._file_name) + + gcode = getattr(Application.getInstance().getController().getScene(), "gcode_list") + compressed_gcode = self._compressGcode(gcode) + if compressed_gcode is None: + return None # User aborted print, so stop trying. + + part.setBody(compressed_gcode) + self._multipart.append(part) + + # require_printer_name "" means automatic + if require_printer_name: + self._multipart.append(self.__createKeyValueHttpPart("require_printer_name", require_printer_name)) + user_name = self.__get_username() + if user_name is None: + user_name = "unknown" + self._multipart.append(self.__createKeyValueHttpPart("owner", user_name)) + + self._addUserAgentHeader(request) + return request + + def _compressGcode(self, gcode): + self._compressing_print = True + batched_line = "" + max_chars_per_line = int(1024 * 1024 / 4) # 1 / 4 MB + + byte_array_file_data = b"" + + def _compressDataAndNotifyQt(data_to_append): + compressed_data = gzip.compress(data_to_append.encode("utf-8")) + self._progress_message.setProgress(-1) # Tickle the message so that it's clear that it's still being used. + QCoreApplication.processEvents() # Ensure that the GUI does not freeze. + # Pretend that this is a response, as zipping might take a bit of time. + self._last_response_time = time.time() + return compressed_data + + if gcode is None: + Logger.log("e", "Unable to find sliced gcode, returning empty.") + return byte_array_file_data + + for line in gcode: + if not self._compressing_print: + self._progress_message.hide() + return None # Stop trying to zip, abort was called. + batched_line += line + # if the gcode was read from a gcode file, self._gcode will be a list of all lines in that file. + # Compressing line by line in this case is extremely slow, so we need to batch them. + if len(batched_line) < max_chars_per_line: + continue + byte_array_file_data += _compressDataAndNotifyQt(batched_line) + batched_line = "" + + # Also compress the leftovers. + if batched_line: + byte_array_file_data += _compressDataAndNotifyQt(batched_line) + + return byte_array_file_data + + def __createKeyValueHttpPart(self, key, value): + metadata_part = QHttpPart() + metadata_part.setHeader(QNetworkRequest.ContentTypeHeader, 'text/plain') + metadata_part.setHeader(QNetworkRequest.ContentDispositionHeader, 'form-data; name="%s"' % (key)) + metadata_part.setBody(bytearray(value, "utf8")) + return metadata_part + + def __get_username(self): + try: + return getpass.getuser() + except: + Logger.log("d", "Could not get the system user name, returning 'unknown' instead.") + return None + + def _finishedPrintJobPostRequest(self, reply): + self._stage = OutputStage.ready + if self._progress_message: + self._progress_message.hide() + self._progress_message = None + self.writeFinished.emit(self) + + if reply.error(): + self._showRequestFailedMessage(reply) + self.writeError.emit(self) + else: + self._showRequestSucceededMessage() + self.writeSuccess.emit(self) + + self._cleanupRequest() + + def _showRequestFailedMessage(self, reply): + if reply is not None: + Logger.log("w", "Unable to send print job to group {cluster_name}: {error_string} ({error})".format( + cluster_name = self.getName(), + error_string = str(reply.errorString()), + error = str(reply.error()))) + error_message_template = i18n_catalog.i18nc("@info:status", "Unable to send print job to group {cluster_name}.") + message = Message(text=error_message_template.format( + cluster_name = self.getName())) + message.show() + + def _showRequestSucceededMessage(self): + confirmation_message_template = i18n_catalog.i18nc( + "@info:status", + "Sent {file_name} to group {cluster_name}." + ) + file_name = os.path.basename(self._file_name).split(".")[0] + message_text = confirmation_message_template.format(cluster_name = self.getName(), file_name = file_name) + message = Message(text=message_text) + button_text = i18n_catalog.i18nc("@action:button", "Show print jobs") + button_tooltip = i18n_catalog.i18nc("@info:tooltip", "Opens the print jobs interface in your browser.") + message.addAction("open_browser", button_text, "globe", button_tooltip) + message.actionTriggered.connect(self._onMessageActionTriggered) + message.show() + + def setPrintJobs(self, print_jobs): + #TODO: hack, last seen messes up the check, so drop it. + for job in print_jobs: + del job["last_seen"] + # Strip any extensions + job["name"] = self._removeGcodeExtension(job["name"]) + + if self._print_jobs != print_jobs: + old_print_jobs = self._print_jobs + self._print_jobs = print_jobs + + self._notifyFinishedPrintJobs(old_print_jobs, print_jobs) + self._notifyConfigurationChangeRequired(old_print_jobs, print_jobs) + + # Yes, this is a hacky way of doing it, but it's quick and the API doesn't give the print job per printer + # for some reason. ugh. + self._print_job_by_printer_uuid = {} + self._print_job_by_uuid = {} + for print_job in print_jobs: + if "printer_uuid" in print_job and print_job["printer_uuid"] is not None: + self._print_job_by_printer_uuid[print_job["printer_uuid"]] = print_job + self._print_job_by_uuid[print_job["uuid"]] = print_job + self.printJobsChanged.emit() + + def _removeGcodeExtension(self, name): + parts = name.split(".") + if parts[-1].upper() == "GZ": + parts = parts[:-1] + if parts[-1].upper() == "GCODE": + parts = parts[:-1] + return ".".join(parts) + + def _notifyFinishedPrintJobs(self, old_print_jobs, new_print_jobs): + """Notify the user when any of their print jobs have just completed. + + Arguments: + + old_print_jobs -- the previous list of print job status information as returned by the cluster REST API. + new_print_jobs -- the current list of print job status information as returned by the cluster REST API. + """ + if old_print_jobs is None: + return + + username = self.__get_username() + if username is None: + return + + our_old_print_jobs = self.__filterOurPrintJobs(old_print_jobs) + our_old_not_finished_print_jobs = [pj for pj in our_old_print_jobs if pj["status"] != "wait_cleanup"] + + our_new_print_jobs = self.__filterOurPrintJobs(new_print_jobs) + our_new_finished_print_jobs = [pj for pj in our_new_print_jobs if pj["status"] == "wait_cleanup"] + + old_not_finished_print_job_uuids = set([pj["uuid"] for pj in our_old_not_finished_print_jobs]) + + for print_job in our_new_finished_print_jobs: + if print_job["uuid"] in old_not_finished_print_job_uuids: + + printer_name = self.__getPrinterNameFromUuid(print_job["printer_uuid"]) + if printer_name is None: + printer_name = i18n_catalog.i18nc("@label", "Unknown") + + message_text = (i18n_catalog.i18nc("@info:status", + "Printer '{printer_name}' has finished printing '{job_name}'.") + .format(printer_name=printer_name, job_name=print_job["name"])) + message = Message(text=message_text, title=i18n_catalog.i18nc("@info:status", "Print finished")) + Application.getInstance().showMessage(message) + Application.getInstance().showToastMessage( + i18n_catalog.i18nc("@info:status", "Print finished"), + message_text) + + def __filterOurPrintJobs(self, print_jobs): + username = self.__get_username() + return [print_job for print_job in print_jobs if print_job["owner"] == username] + + def _notifyConfigurationChangeRequired(self, old_print_jobs, new_print_jobs): + if old_print_jobs is None: + return + + old_change_required_print_jobs = self.__filterConfigChangePrintJobs(self.__filterOurPrintJobs(old_print_jobs)) + new_change_required_print_jobs = self.__filterConfigChangePrintJobs(self.__filterOurPrintJobs(new_print_jobs)) + old_change_required_print_job_uuids = set([pj["uuid"] for pj in old_change_required_print_jobs]) + + for print_job in new_change_required_print_jobs: + if print_job["uuid"] not in old_change_required_print_job_uuids: + + printer_name = self.__getPrinterNameFromUuid(print_job["assigned_to"]) + if printer_name is None: + # don't report on yet unknown printers + continue + + message_text = (i18n_catalog.i18n("{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing.") + .format(printer_name=printer_name, job_name=print_job["name"])) + message = Message(text=message_text, title=i18n_catalog.i18nc("@label:status", "Action required")) + Application.getInstance().showMessage(message) + Application.getInstance().showToastMessage( + i18n_catalog.i18nc("@label:status", "Action required"), + message_text) + + def __filterConfigChangePrintJobs(self, print_jobs): + return filter(self.__isConfigurationChangeRequiredPrintJob, print_jobs) + + def __isConfigurationChangeRequiredPrintJob(self, print_job): + if print_job["status"] == "queued": + changes_required = print_job.get("configuration_changes_required", []) + return len(changes_required) != 0 + return False + + def __getPrinterNameFromUuid(self, printer_uuid): + for printer in self._printers: + if printer["uuid"] == printer_uuid: + return printer["friendly_name"] + return None + + def setPrinters(self, printers): + if self._printers != printers: + self._connected_printers_type_count = [] + printers_count = {} + self._printers = printers + self._printers_dict = dict((p["unique_name"], p) for p in printers) # for easy lookup by unique_name + + for printer in printers: + variant = printer["machine_variant"] + if variant in printers_count: + printers_count[variant] += 1 + else: + printers_count[variant] = 1 + for type in printers_count: + self._connected_printers_type_count.append({"machine_type": type, "count": printers_count[type]}) + self.printersChanged.emit() + + @pyqtProperty("QVariantList", notify=printersChanged) + def connectedPrintersTypeCount(self): + return self._connected_printers_type_count + + @pyqtProperty("QVariantList", notify=printersChanged) + def connectedPrinters(self): + return self._printers + + @pyqtProperty(int, notify=printJobsChanged) + def numJobsPrinting(self): + num_jobs_printing = 0 + for job in self._print_jobs: + if job["status"] in ["printing", "wait_cleanup", "sent_to_printer", "pre_print", "post_print"]: + num_jobs_printing += 1 + return num_jobs_printing + + @pyqtProperty(int, notify=printJobsChanged) + def numJobsQueued(self): + num_jobs_queued = 0 + for job in self._print_jobs: + if job["status"] == "queued": + num_jobs_queued += 1 + return num_jobs_queued + + @pyqtProperty("QVariantMap", notify=printJobsChanged) + def printJobsByUUID(self): + return self._print_job_by_uuid + + @pyqtProperty("QVariantMap", notify=printJobsChanged) + def printJobsByPrinterUUID(self): + return self._print_job_by_printer_uuid + + @pyqtProperty("QVariantList", notify=printJobsChanged) + def printJobs(self): + return self._print_jobs + + @pyqtProperty("QVariantList", notify=printersChanged) + def printers(self): + return [self._automatic_printer, ] + self._printers + + @pyqtSlot(str, str) + def selectPrinter(self, unique_name, friendly_name): + self.stopCamera() + self._selected_printer = {"unique_name": unique_name, "friendly_name": friendly_name} + Logger.log("d", "Selected printer: %s %s", friendly_name, unique_name) + # TODO: Probably not the nicest way to do this. This needs to be done better at some point in time. + if unique_name == "": + self._address = self._master_address + else: + self._address = self._printers_dict[self._selected_printer["unique_name"]]["ip_address"] + + self.selectedPrinterChanged.emit() + + def _updateJobState(self, job_state): + name = self._selected_printer.get("friendly_name") + if name == "" or name == "Automatic": + # TODO: This is now a bit hacked; If no printer is selected, don't show job state. + if self._job_state != "": + self._job_state = "" + self.jobStateChanged.emit() + else: + if self._job_state != job_state: + self._job_state = job_state + self.jobStateChanged.emit() + + @pyqtSlot() + def selectAutomaticPrinter(self): + self.stopCamera() + self._selected_printer = self._automatic_printer + self.selectedPrinterChanged.emit() + + @pyqtProperty("QVariant", notify=selectedPrinterChanged) + def selectedPrinterName(self): + return self._selected_printer.get("unique_name", "") + + def getPrintJobsUrl(self): + return self._host + "/print_jobs" + + def getPrintersUrl(self): + return self._host + "/printers" + + def _showProgressMessage(self): + progress_message_template = i18n_catalog.i18nc("@info:progress", + "Sending {file_name} to group {cluster_name}") + file_name = os.path.basename(self._file_name).split(".")[0] + self._progress_message = Message(progress_message_template.format(file_name = file_name, cluster_name = self.getName()), 0, False, -1) + self._progress_message.addAction("Abort", i18n_catalog.i18nc("@action:button", "Cancel"), None, "") + self._progress_message.actionTriggered.connect(self._onMessageActionTriggered) + self._progress_message.show() + + def _addUserAgentHeader(self, request): + request.setRawHeader(b"User-agent", b"CuraPrintClusterOutputDevice Plugin") + + def _cleanupRequest(self): + self._request = None + self._stage = OutputStage.ready + self._file_name = None + + def _onFinished(self, reply): + super()._onFinished(reply) + reply_url = reply.url().toString() + status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) + if status_code == 500: + Logger.log("w", "Request to {url} returned a 500.".format(url = reply_url)) + return + if reply.error() == QNetworkReply.ContentOperationNotPermittedError: + # It was probably "/api/v1/materials" for legacy UM3 + return + if reply.error() == QNetworkReply.ContentNotFoundError: + # It was probably "/api/v1/print_job" for legacy UM3 + return + + if reply.operation() == QNetworkAccessManager.PostOperation: + if self._cluster_api_prefix + "print_jobs" in reply_url: + self._finishedPrintJobPostRequest(reply) + return + + # We need to do this check *after* we process the post operation! + # If the sending of g-code is cancelled by the user it will result in an error, but we do need to handle this. + if reply.error() != QNetworkReply.NoError: + Logger.log("e", "After requesting [%s] we got a network error [%s]. Not processing anything...", reply_url, reply.error()) + return + + elif reply.operation() == QNetworkAccessManager.GetOperation: + if self._cluster_api_prefix + "print_jobs" in reply_url: + self._finishedPrintJobsRequest(reply) + elif self._cluster_api_prefix + "printers" in reply_url: + self._finishedPrintersRequest(reply) + + @pyqtSlot() + def openPrintJobControlPanel(self): + Logger.log("d", "Opening print job control panel...") + QDesktopServices.openUrl(QUrl(self.getPrintJobsUrl())) + + @pyqtSlot() + def openPrinterControlPanel(self): + Logger.log("d", "Opening printer control panel...") + QDesktopServices.openUrl(QUrl(self.getPrintersUrl())) + + def _onMessageActionTriggered(self, message, action): + if action == "open_browser": + QDesktopServices.openUrl(QUrl(self.getPrintJobsUrl())) + + if action == "Abort": + Logger.log("d", "User aborted sending print to remote.") + self._progress_message.hide() + self._compressing_print = False + if self._reply: + self._reply.abort() + self._stage = OutputStage.ready + Application.getInstance().showPrintMonitor.emit(False) + + @pyqtSlot(int, result=str) + def formatDuration(self, seconds): + return Duration(seconds).getDisplayString(DurationFormat.Format.Short) + + ## For cluster below + def _get_plugin_directory_name(self): + current_file_absolute_path = os.path.realpath(__file__) + directory_path = os.path.dirname(current_file_absolute_path) + _, directory_name = os.path.split(directory_path) + return directory_name + + @property + def _plugin_path(self): + return PluginRegistry.getInstance().getPluginPath(self._get_plugin_directory_name()) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index 373521b4e9..d8dd780ed5 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog from UM.Application import Application @@ -12,25 +12,25 @@ import UM.Settings.ContainerRegistry import UM.Version #To compare firmware version numbers. from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState +from cura.Settings.ContainerManager import ContainerManager import cura.Settings.ExtruderManager from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply from PyQt5.QtCore import QUrl, QTimer, pyqtSignal, pyqtProperty, pyqtSlot, QCoreApplication -from PyQt5.QtGui import QImage +from PyQt5.QtGui import QImage, QColor from PyQt5.QtWidgets import QMessageBox import json import os import gzip -import zlib from time import time -from time import sleep + +from time import gmtime +from enum import IntEnum i18n_catalog = i18nCatalog("cura") -from enum import IntEnum - class AuthState(IntEnum): NotAuthenticated = 1 AuthenticationRequested = 2 @@ -48,7 +48,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._api_prefix = api_prefix self._gcode = None - self._print_finished = True # _print_finsihed == False means we're halfway in a print + self._print_finished = True # _print_finished == False means we're halfway in a print + self._write_finished = True # _write_finished == False means we're currently sending a G-code file self._use_gzip = True # Should we use g-zip compression before sending the data? @@ -101,7 +102,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._target_bed_temperature = 0 self._processing_preheat_requests = True - self.setPriority(2) # Make sure the output device gets selected above local file output + self._can_control_manually = False + + self.setPriority(3) # Make sure the output device gets selected above local file output self.setName(key) self.setShortDescription(i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network")) self.setDescription(i18n_catalog.i18nc("@properties:tooltip", "Print over network")) @@ -153,12 +156,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._authentication_id = None self._authentication_key = None - self._authentication_requested_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer requested. Please approve the request on the printer"), lifetime = 0, dismissable = False, progress = 0) - self._authentication_failed_message = Message(i18n_catalog.i18nc("@info:status", "")) + self._authentication_requested_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer requested. Please approve the request on the printer"), lifetime = 0, dismissable = False, progress = 0, title = i18n_catalog.i18nc("@info:title", "Connection status")) + self._authentication_failed_message = Message(i18n_catalog.i18nc("@info:status", ""), title = i18n_catalog.i18nc("@info:title", "Connection Status")) self._authentication_failed_message.addAction("Retry", i18n_catalog.i18nc("@action:button", "Retry"), None, i18n_catalog.i18nc("@info:tooltip", "Re-send the access request")) self._authentication_failed_message.actionTriggered.connect(self.requestAuthentication) - self._authentication_succeeded_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer accepted")) - self._not_authenticated_message = Message(i18n_catalog.i18nc("@info:status", "No access to print with this printer. Unable to send print job.")) + self._authentication_succeeded_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer accepted"), title = i18n_catalog.i18nc("@info:title", "Connection Status")) + self._not_authenticated_message = Message(i18n_catalog.i18nc("@info:status", "No access to print with this printer. Unable to send print job."), title = i18n_catalog.i18nc("@info:title", "Connection Status")) self._not_authenticated_message.addAction("Request", i18n_catalog.i18nc("@action:button", "Request Access"), None, i18n_catalog.i18nc("@info:tooltip", "Send access request to the printer")) self._not_authenticated_message.actionTriggered.connect(self.requestAuthentication) @@ -204,16 +207,16 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._authentication_requested_message.setProgress(self._authentication_counter / self._max_authentication_counter * 100) if self._authentication_counter > self._max_authentication_counter: self._authentication_timer.stop() - Logger.log("i", "Authentication timer ended. Setting authentication to denied") + Logger.log("i", "Authentication timer ended. Setting authentication to denied for printer: %s" % self._key) self.setAuthenticationState(AuthState.AuthenticationDenied) def _onAuthenticationRequired(self, reply, authenticator): if self._authentication_id is not None and self._authentication_key is not None: - Logger.log("d", "Authentication was required. Setting up authenticator with ID %s and key %s", self._authentication_id, self._getSafeAuthKey()) + Logger.log("d", "Authentication was required for printer: %s. Setting up authenticator with ID %s and key %s", self._key, self._authentication_id, self._getSafeAuthKey()) authenticator.setUser(self._authentication_id) authenticator.setPassword(self._authentication_key) else: - Logger.log("d", "No authentication is available to use, but we did got a request for it.") + Logger.log("d", "No authentication is available to use for %s, but we did got a request for it.", self._key) def getProperties(self): return self._properties @@ -312,17 +315,39 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self.targetBedTemperatureChanged.emit() return True + ## Updates the target hotend temperature from the printer, and emit a signal if it was changed. + # + # /param index The index of the hotend. + # /param temperature The new target temperature of the hotend. + # /return boolean, True if the temperature was changed, false if the new temperature has the same value as the already stored temperature + def _updateTargetHotendTemperature(self, index, temperature): + if self._target_hotend_temperatures[index] == temperature: + return False + self._target_hotend_temperatures[index] = temperature + self.targetHotendTemperaturesChanged.emit() + return True + def _stopCamera(self): + self._stream_buffer = b"" + self._stream_buffer_start_index = -1 + if self._camera_timer.isActive(): self._camera_timer.stop() - if self._image_reply: + + if self._image_reply: + try: + # disconnect the signal try: - self._image_reply.abort() self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress) - except RuntimeError: - pass # It can happen that the wrapped c++ object is already deleted. - self._image_reply = None - self._image_request = None + except Exception: + pass + # abort the request if it's not finished + if not self._image_reply.isFinished(): + self._image_reply.close() + except Exception as e: #RuntimeError + pass # It can happen that the wrapped c++ object is already deleted. + self._image_reply = None + self._image_request = None def _startCamera(self): if self._use_stream: @@ -352,6 +377,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): if auth_state == self._authentication_state: return # Nothing to do here. + Logger.log("d", "Attempting to update auth state from %s to %s for printer %s" % (self._authentication_state, auth_state, self._key)) + if auth_state == AuthState.AuthenticationRequested: Logger.log("d", "Authentication state changed to authentication requested.") self.setAcceptsCommands(False) @@ -404,9 +431,10 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): @pyqtSlot() def requestAuthentication(self, message_id = None, action_id = "Retry"): if action_id == "Request" or action_id == "Retry": + Logger.log("d", "Requestion authentication for %s due to action %s" % (self._key, action_id)) self._authentication_failed_message.hide() self._not_authenticated_message.hide() - self._authentication_state = AuthState.NotAuthenticated + self.setAuthenticationState(AuthState.NotAuthenticated) self._authentication_counter = 0 self._authentication_requested_message.setProgress(0) self._authentication_id = None @@ -447,7 +475,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._connection_state_before_timeout = self._connection_state self.setConnectionState(ConnectionState.error) self._connection_message = Message(i18n_catalog.i18nc("@info:status", - "The connection with the network was lost.")) + "The connection with the network was lost."), + title = i18n_catalog.i18nc("@info:title", "Connection Status")) self._connection_message.show() if self._progress_message: @@ -455,18 +484,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Check if we were uploading something. Abort if this is the case. # Some operating systems handle this themselves, others give weird issues. - try: - if self._post_reply: - Logger.log("d", "Stopping post upload because the connection was lost.") - try: - self._post_reply.uploadProgress.disconnect(self._onUploadProgress) - except TypeError: - pass # The disconnection can fail on mac in some cases. Ignore that. - - self._post_reply.abort() - self._post_reply = None - except RuntimeError: - self._post_reply = None # It can happen that the wrapped c++ object is already deleted. + if self._post_reply: + Logger.log("d", "Stopping post upload because the connection was lost.") + self._finalizePostReply() return else: if not self._connection_state_before_timeout: @@ -478,7 +498,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Go into timeout state. Logger.log("d", "We did not receive a response for %0.1f seconds, so it seems the printer is no longer accessible.", time_since_last_response) self._connection_state_before_timeout = self._connection_state - self._connection_message = Message(i18n_catalog.i18nc("@info:status", "The connection with the printer was lost. Check your printer to see if it is connected.")) + self._connection_message = Message(i18n_catalog.i18nc("@info:status", "The connection with the printer was lost. Check your printer to see if it is connected."), + title = i18n_catalog.i18nc("@info:title", "Connection Status")) self._connection_message.show() if self._progress_message: @@ -486,18 +507,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Check if we were uploading something. Abort if this is the case. # Some operating systems handle this themselves, others give weird issues. - try: - if self._post_reply: - Logger.log("d", "Stopping post upload because the connection was lost.") - try: - self._post_reply.uploadProgress.disconnect(self._onUploadProgress) - except TypeError: - pass # The disconnection can fail on mac in some cases. Ignore that. - - self._post_reply.abort() - self._post_reply = None - except RuntimeError: - self._post_reply = None # It can happen that the wrapped c++ object is already deleted. + if self._post_reply: + Logger.log("d", "Stopping post upload because the connection was lost.") + self._finalizePostReply() self.setConnectionState(ConnectionState.error) return @@ -518,6 +530,29 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._last_request_time = time() + def _finalizePostReply(self): + # Indicate uploading was finished (so another file can be send) + self._write_finished = True + + if self._post_reply is None: + return + + try: + try: + self._post_reply.uploadProgress.disconnect(self._onUploadProgress) + except TypeError: + pass # The disconnection can fail on mac in some cases. Ignore that. + + try: + self._post_reply.finished.disconnect(self._onUploadFinished) + except TypeError: + pass # The disconnection can fail on mac in some cases. Ignore that. + + self._post_reply.abort() + self._post_reply = None + except RuntimeError: + self._post_reply = None # It can happen that the wrapped c++ object is already deleted. + def _createNetworkManager(self): if self._manager: self._manager.finished.disconnect(self._onFinished) @@ -534,8 +569,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): def _spliceJSONData(self): # Check for hotend temperatures for index in range(0, self._num_extruders): - temperature = self._json_printer_state["heads"][0]["extruders"][index]["hotend"]["temperature"]["current"] - self._setHotendTemperature(index, temperature) + temperatures = self._json_printer_state["heads"][0]["extruders"][index]["hotend"]["temperature"] + self._setHotendTemperature(index, temperatures["current"]) + self._updateTargetHotendTemperature(index, temperatures["target"]) try: material_id = self._json_printer_state["heads"][0]["extruders"][index]["active_material"]["guid"] except KeyError: @@ -547,10 +583,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): hotend_id = "" self._setHotendId(index, hotend_id) - bed_temperature = self._json_printer_state["bed"]["temperature"]["current"] - self._setBedTemperature(bed_temperature) - target_bed_temperature = self._json_printer_state["bed"]["temperature"]["target"] - self._updateTargetBedTemperature(target_bed_temperature) + bed_temperatures = self._json_printer_state["bed"]["temperature"] + self._setBedTemperature(bed_temperatures["current"]) + self._updateTargetBedTemperature(bed_temperatures["target"]) head_x = self._json_printer_state["heads"][0]["position"]["x"] head_y = self._json_printer_state["heads"][0]["position"]["y"] @@ -591,7 +626,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Reset authentication state self._authentication_requested_message.hide() - self._authentication_state = AuthState.NotAuthenticated + self.setAuthenticationState(AuthState.NotAuthenticated) self._authentication_counter = 0 self._authentication_timer.stop() @@ -624,15 +659,17 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # \param filter_by_machine Whether to filter MIME types by machine. This # is ignored. # \param kwargs Keyword arguments. - def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None, **kwargs): + def requestWrite(self, nodes, file_name=None, filter_by_machine=False, file_handler=None, **kwargs): + if self._printer_state not in ["idle", ""]: self._error_message = Message( - i18n_catalog.i18nc("@info:status", "Unable to start a new print job, printer is busy. Current printer status is %s.") % self._printer_state) + i18n_catalog.i18nc("@info:status", "Unable to start a new print job, printer is busy. Current printer status is %s.") % self._printer_state, + title = i18n_catalog.i18nc("@info:title", "Printer Status")) self._error_message.show() return elif self._authentication_state != AuthState.Authenticated: self._not_authenticated_message.show() - Logger.log("d", "Attempting to perform an action without authentication. Auth state is %s", self._authentication_state) + Logger.log("d", "Attempting to perform an action without authentication for printer %s. Auth state is %s", self._key, self._authentication_state) return Application.getInstance().showPrintMonitor.emit(True) @@ -651,14 +688,16 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): if self._json_printer_state["heads"][0]["extruders"][index]["hotend"]["id"] == "": Logger.log("e", "No cartridge loaded in slot %s, unable to start print", index + 1) self._error_message = Message( - i18n_catalog.i18nc("@info:status", "Unable to start a new print job. No Printcore loaded in slot {0}".format(index + 1))) + i18n_catalog.i18nc("@info:status", "Unable to start a new print job. No Printcore loaded in slot {0}".format(index + 1)), + title = i18n_catalog.i18nc("@info:title", "Error")) self._error_message.show() return if self._json_printer_state["heads"][0]["extruders"][index]["active_material"]["guid"] == "": Logger.log("e", "No material loaded in slot %s, unable to start print", index + 1) self._error_message = Message( i18n_catalog.i18nc("@info:status", - "Unable to start a new print job. No material loaded in slot {0}".format(index + 1))) + "Unable to start a new print job. No material loaded in slot {0}".format(index + 1)), + title = i18n_catalog.i18nc("@info:title", "Error")) self._error_message.show() return @@ -738,11 +777,18 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): ## Start requesting data from printer def connect(self): + # Don't allow to connect to a printer with a faulty connection state. + # For instance when switching printers but the printer is disconnected from the network + if self._connection_state == ConnectionState.error: + return + if self.isConnected(): self.close() # Close previous connection self._createNetworkManager() + self._last_response_time = time() # Ensure we reset the time when trying to connect (again) + self.setConnectionState(ConnectionState.connecting) self._update() # Manually trigger the first update, as we don't want to wait a few secs before it starts. if not self._use_stream: @@ -756,7 +802,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): if self._authentication_id is None and self._authentication_key is None: Logger.log("d", "No authentication found in metadata.") else: - Logger.log("d", "Loaded authentication id %s and key %s from the metadata entry", self._authentication_id, self._getSafeAuthKey()) + Logger.log("d", "Loaded authentication id %s and key %s from the metadata entry for printer %s", self._authentication_id, self._getSafeAuthKey(), self._key) self._update_timer.start() @@ -801,18 +847,30 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): Logger.log("d", "User aborted sending print to remote.") self._progress_message.hide() self._compressing_print = False + self._write_finished = True # post_reply does not always exist, so make sure we unblock writing if self._post_reply: - self._post_reply.abort() - self._post_reply = None + self._finalizePostReply() Application.getInstance().showPrintMonitor.emit(False) ## Attempt to start a new print. # This function can fail to actually start a print due to not being authenticated or another print already # being in progress. def startPrint(self): + + # Check if we're already writing + if not self._write_finished: + self._error_message = Message( + i18n_catalog.i18nc("@info:status", + "Sending new jobs (temporarily) blocked, still sending the previous print job.")) + self._error_message.show() + return + + # Indicate we're starting a new write action, is set back to True at the end of this method + self._write_finished = False + try: self._send_gcode_start = time() - self._progress_message = Message(i18n_catalog.i18nc("@info:status", "Sending data to printer"), 0, False, -1) + self._progress_message = Message(i18n_catalog.i18nc("@info:status", "Sending data to printer"), 0, False, -1, i18n_catalog.i18nc("@info:title", "Sending Data")) self._progress_message.addAction("Abort", i18n_catalog.i18nc("@action:button", "Cancel"), None, "") self._progress_message.actionTriggered.connect(self._progressMessageActionTrigger) self._progress_message.show() @@ -827,6 +885,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): def _compress_data_and_notify_qt(data_to_append): compressed_data = gzip.compress(data_to_append.encode("utf-8")) + self._progress_message.setProgress(-1) # Tickle the message so that it's clear that it's still being used. QCoreApplication.processEvents() # Ensure that the GUI does not freeze. # Pretend that this is a response, as zipping might take a bit of time. self._last_response_time = time() @@ -878,10 +937,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): ## Post request + data self._post_reply = self._manager.post(self._post_request, self._post_multi_part) self._post_reply.uploadProgress.connect(self._onUploadProgress) + self._post_reply.finished.connect(self._onUploadFinished) # used to unblock new write actions except IOError: self._progress_message.hide() - self._error_message = Message(i18n_catalog.i18nc("@info:status", "Unable to send data to printer. Is another job still active?")) + self._error_message = Message(i18n_catalog.i18nc("@info:status", "Unable to send data to printer. Is another job still active?"), + title = i18n_catalog.i18nc("@info:title", "Warning")) self._error_message.show() except Exception as e: self._progress_message.hide() @@ -915,6 +976,13 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): xml_data = container.serialize() if xml_data == "" or xml_data is None: continue + + names = ContainerManager.getInstance().getLinkedMaterials(container.getId()) + if names: + # There are other materials that share this GUID. + if not container.isReadOnly(): + continue # If it's not readonly, it's created by user, so skip it. + material_multi_part = QHttpMultiPart(QHttpMultiPart.FormDataType) material_part = QHttpPart() @@ -941,10 +1009,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Check if we were uploading something. Abort if this is the case. # Some operating systems handle this themselves, others give weird issues. if self._post_reply: - self._post_reply.abort() - self._post_reply.uploadProgress.disconnect(self._onUploadProgress) + self._finalizePostReply() Logger.log("d", "Uploading of print failed after %s", time() - self._send_gcode_start) - self._post_reply = None self._progress_message.hide() self.setConnectionState(ConnectionState.error) @@ -972,7 +1038,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): reply_url = reply.url().toString() if reply.operation() == QNetworkAccessManager.GetOperation: - if "printer" in reply_url: # Status update from printer. + # "printer" is also in "printers", therefore _api_prefix is added. + if self._api_prefix + "printer" in reply_url: # Status update from printer. if status_code == 200: if self._connection_state == ConnectionState.connecting: self.setConnectionState(ConnectionState.connected) @@ -990,7 +1057,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): else: Logger.log("w", "We got an unexpected status (%s) while requesting printer state", status_code) pass # TODO: Handle errors - elif "print_job" in reply_url: # Status update from print_job: + elif self._api_prefix + "print_job" in reply_url: # Status update from print_job: if status_code == 200: try: json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) @@ -1052,7 +1119,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): if status_code == 401: if self._authentication_state != AuthState.AuthenticationRequested: # Only request a new authentication when we have not already done so. - Logger.log("i", "Not authenticated (Current auth state is %s). Attempting to request authentication", self._authentication_state ) + Logger.log("i", "Not authenticated (Current auth state is %s). Attempting to request authentication for printer %s", self._authentication_state, self._key ) self._requestAuthentication() elif status_code == 403: # If we already had an auth (eg; didn't request one), we only need a single 403 to see it as denied. @@ -1073,8 +1140,16 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): global_container_stack.setMetaDataEntry("network_authentication_id", self._authentication_id) else: global_container_stack.addMetaDataEntry("network_authentication_id", self._authentication_id) - Application.getInstance().saveStack(global_container_stack) # Force save so we are sure the data is not lost. - Logger.log("i", "Authentication succeeded for id %s and key %s", self._authentication_id, self._getSafeAuthKey()) + Logger.log("i", "Authentication succeeded for id %s and key %s", self._authentication_id, self._getSafeAuthKey()) + Application.getInstance().saveStack(global_container_stack) # Force save so we are sure the data is not lost. + else: + Logger.log("w", "Unable to save authentication for id %s and key %s", self._authentication_id, self._getSafeAuthKey()) + + # Request 'system' printer data once, when we know we have authentication, so we know we can set the system time. + url = QUrl("http://" + self._address + self._api_prefix + "system") + system_data_request = QNetworkRequest(url) + self._manager.get(system_data_request) + else: # Got a response that we didn't expect, so something went wrong. Logger.log("e", "While trying to authenticate, we got an unexpected response: %s", reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)) self.setAuthenticationState(AuthState.NotAuthenticated) @@ -1094,6 +1169,27 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): else: pass + elif self._api_prefix + "system" in reply_url: + # Check if the printer has time, and if this has a valid system time. + try: + data = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.decoder.JSONDecodeError: + Logger.log("w", "Received an invalid authentication request reply from printer: Not valid JSON.") + return + if "time" in data and "utc" in data["time"]: + try: + printer_time = gmtime(float(data["time"]["utc"])) + Logger.log("i", "Printer has system time of: %s", str(printer_time)) + except ValueError: + printer_time = None + if printer_time is not None and printer_time.tm_year < 1990: + # The system time is not valid, sync our current system time to it, so we at least have some reasonable time in the printer. + Logger.log("w", "Printer system time invalid, setting system time") + url = QUrl("http://" + self._address + self._api_prefix + "system/time/utc") + put_request = QNetworkRequest(url) + put_request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") + self._manager.put(put_request, str(time()).encode()) + elif reply.operation() == QNetworkAccessManager.PostOperation: if "/auth/request" in reply_url: # We got a response to requesting authentication. @@ -1104,7 +1200,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): return global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack: # Remove any old data. - Logger.log("d", "Removing old network authentication data as a new one was requested.") + Logger.log("d", "Removing old network authentication data for %s as a new one was requested.", self._key) global_container_stack.removeMetaDataEntry("network_authentication_key") global_container_stack.removeMetaDataEntry("network_authentication_id") Application.getInstance().saveStack(global_container_stack) # Force saving so we don't keep wrong auth data. @@ -1119,7 +1215,15 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Remove cached post request items. del self._material_post_objects[id(reply)] elif "print_job" in reply_url: - reply.uploadProgress.disconnect(self._onUploadProgress) + self._onUploadFinished() # Make sure the upload flag is reset as reply.finished is not always triggered + try: + reply.uploadProgress.disconnect(self._onUploadProgress) + except: + pass + try: + reply.finished.disconnect(self._onUploadFinished) + except: + pass Logger.log("d", "Uploading of print succeeded after %s", time() - self._send_gcode_start) # Only reset the _post_reply if it was the same one. if reply == self._post_reply: @@ -1143,6 +1247,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): return self._stream_buffer += self._image_reply.readAll() + if len(self._stream_buffer) > 2000000: # No single camera frame should be 2 Mb or larger + Logger.log("w", "MJPEG buffer exceeds reasonable size. Restarting stream...") + self._stopCamera() # resets stream buffer and start index + self._startCamera() + return + if self._stream_buffer_start_index == -1: self._stream_buffer_start_index = self._stream_buffer.indexOf(b'\xff\xd8') stream_buffer_end_index = self._stream_buffer.lastIndexOf(b'\xff\xd9') @@ -1170,6 +1280,10 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._progress_message.setProgress(0) self._progress_message.hide() + ## Allow new write actions (uploads) again when uploading is finished. + def _onUploadFinished(self): + self._write_finished = True + ## Let the user decide if the hotends and/or material should be synced with the printer def materialHotendChangedMessage(self, callback): Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Sync with your printer"), diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index 9f450f21ab..46538f1af9 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -1,34 +1,41 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. - -from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin -from . import NetworkPrinterOutputDevice - -from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo # type: ignore -from UM.Logger import Logger -from UM.Signal import Signal, signalemitter -from UM.Application import Application -from UM.Preferences import Preferences - -from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager, QNetworkReply -from PyQt5.QtCore import QUrl +# Cura is released under the terms of the LGPLv3 or higher. import time import json +from queue import Queue +from threading import Event, Thread + +from PyQt5.QtCore import QObject, pyqtSlot +from PyQt5.QtCore import QUrl +from PyQt5.QtGui import QDesktopServices +from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager +from UM.Application import Application +from UM.Logger import Logger +from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin +from UM.Preferences import Preferences +from UM.Signal import Signal, signalemitter +from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo # type: ignore + +from . import NetworkPrinterOutputDevice, NetworkClusterPrinterOutputDevice + ## This plugin handles the connection detection & creation of output device objects for the UM3 printer. # Zero-Conf is used to detect printers, which are saved in a dict. # If we discover a printer that has the same key as the active machine instance a connection is made. @signalemitter -class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): +class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): def __init__(self): super().__init__() self._zero_conf = None self._browser = None self._printers = {} + self._cluster_printers_seen = {} # do not forget a cluster printer when we have seen one, to not 'downgrade' from Connect to legacy printer self._api_version = "1" self._api_prefix = "/api/v" + self._api_version + "/" + self._cluster_api_version = "1" + self._cluster_api_prefix = "/cluster-api/v" + self._cluster_api_version + "/" self._network_manager = QNetworkAccessManager() self._network_manager.finished.connect(self._onNetworkRequestFinished) @@ -47,6 +54,18 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): self._preferences.addPreference("um3networkprinting/manual_instances", "") # A comma-separated list of ip adresses or hostnames self._manual_instances = self._preferences.getValue("um3networkprinting/manual_instances").split(",") + self._network_requests_buffer = {} # store api responses until data is complete + + # The zeroconf service changed requests are handled in a separate thread, so we can re-schedule the requests + # which fail to get detailed service info. + # Any new or re-scheduled requests will be appended to the request queue, and the handling thread will pick + # them up and process them. + self._service_changed_request_queue = Queue() + self._service_changed_request_event = Event() + self._service_changed_request_thread = Thread(target = self._handleOnServiceChangedRequests, + daemon = True) + self._service_changed_request_thread.start() + addPrinterSignal = Signal() removePrinterSignal = Signal() printerListChanged = Signal() @@ -66,7 +85,7 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): # After network switching, one must make a new instance of Zeroconf # On windows, the instance creation is very fast (unnoticable). Other platforms? self._zero_conf = Zeroconf() - self._browser = ServiceBrowser(self._zero_conf, u'_ultimaker._tcp.local.', [self._onServiceChanged]) + self._browser = ServiceBrowser(self._zero_conf, u'_ultimaker._tcp.local.', [self._appendServiceChangedRequest]) # Look for manual instances from preference for address in self._manual_instances: @@ -91,6 +110,7 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): self.addPrinter(instance_name, address, properties) self.checkManualPrinter(address) + self.checkClusterPrinter(address) def removeManualPrinter(self, key, address = None): if key in self._printers: @@ -105,41 +125,92 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): def checkManualPrinter(self, address): # Check if a printer exists at this address # If a printer responds, it will replace the preliminary printer created above - url = QUrl("http://" + address + self._api_prefix + "system") + # origin=manual is for tracking back the origin of the call + url = QUrl("http://" + address + self._api_prefix + "system?origin=manual_name") name_request = QNetworkRequest(url) self._network_manager.get(name_request) + def checkClusterPrinter(self, address): + cluster_url = QUrl("http://" + address + self._cluster_api_prefix + "printers/?origin=check_cluster") + cluster_request = QNetworkRequest(cluster_url) + self._network_manager.get(cluster_request) + ## Handler for all requests that have finished. def _onNetworkRequestFinished(self, reply): reply_url = reply.url().toString() status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) if reply.operation() == QNetworkAccessManager.GetOperation: - if "system" in reply_url: # Name returned from printer. + address = reply.url().host() + if "origin=manual_name" in reply_url: # Name returned from printer. if status_code == 200: - system_info = json.loads(bytes(reply.readAll()).decode("utf-8")) - address = reply.url().host() - instance_name = "manual:%s" % address - machine = "unknown" - if "variant" in system_info: - variant = system_info["variant"] - if variant == "Ultimaker 3": - machine = "9066" - elif variant == "Ultimaker 3 Extended": - machine = "9511" + try: + system_info = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.JSONDecodeError: + Logger.log("e", "Printer returned invalid JSON.") + return + except UnicodeDecodeError: + Logger.log("e", "Printer returned incorrect UTF-8.") + return - properties = { - b"name": system_info["name"].encode("utf-8"), - b"address": address.encode("utf-8"), - b"firmware_version": system_info["firmware"].encode("utf-8"), - b"manual": b"true", - b"machine": machine.encode("utf-8") - } - if instance_name in self._printers: - # Only replace the printer if it is still in the list of (manual) printers - self.removePrinter(instance_name) - self.addPrinter(instance_name, address, properties) + if address not in self._network_requests_buffer: + self._network_requests_buffer[address] = {} + self._network_requests_buffer[address]["system"] = system_info + elif "origin=check_cluster" in reply_url: + if address not in self._network_requests_buffer: + self._network_requests_buffer[address] = {} + if status_code == 200: + # We know it's a cluster printer + Logger.log("d", "Cluster printer detected: [%s]", reply.url()) + + try: + cluster_printers_list = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.JSONDecodeError: + Logger.log("e", "Printer returned invalid JSON.") + return + except UnicodeDecodeError: + Logger.log("e", "Printer returned incorrect UTF-8.") + return + + self._network_requests_buffer[address]["cluster"] = True + self._network_requests_buffer[address]["cluster_size"] = len(cluster_printers_list) + else: + Logger.log("d", "This url is not from a cluster printer: [%s]", reply.url()) + self._network_requests_buffer[address]["cluster"] = False + + # Both the system call and cluster call are finished + if (address in self._network_requests_buffer and + "system" in self._network_requests_buffer[address] and + "cluster" in self._network_requests_buffer[address]): + + instance_name = "manual:%s" % address + system_info = self._network_requests_buffer[address]["system"] + machine = "unknown" + if "variant" in system_info: + variant = system_info["variant"] + if variant == "Ultimaker 3": + machine = "9066" + elif variant == "Ultimaker 3 Extended": + machine = "9511" + + properties = { + b"name": system_info["name"].encode("utf-8"), + b"address": address.encode("utf-8"), + b"firmware_version": system_info["firmware"].encode("utf-8"), + b"manual": b"true", + b"machine": machine.encode("utf-8") + } + + if self._network_requests_buffer[address]["cluster"]: + properties[b"cluster_size"] = self._network_requests_buffer[address]["cluster_size"] + + if instance_name in self._printers: + # Only replace the printer if it is still in the list of (manual) printers + self.removePrinter(instance_name) + self.addPrinter(instance_name, address, properties) + + del self._network_requests_buffer[address] ## Stop looking for devices on network. def stop(self): @@ -169,8 +240,14 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): ## Because the model needs to be created in the same thread as the QMLEngine, we use a signal. def addPrinter(self, name, address, properties): - printer = NetworkPrinterOutputDevice.NetworkPrinterOutputDevice(name, address, properties, self._api_prefix) + cluster_size = int(properties.get(b"cluster_size", -1)) + if cluster_size >= 0: + printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice( + name, address, properties, self._api_prefix) + else: + printer = NetworkPrinterOutputDevice.NetworkPrinterOutputDevice(name, address, properties, self._api_prefix) self._printers[printer.getKey()] = printer + self._cluster_printers_seen[printer.getKey()] = name # Cluster printers that may be temporary unreachable or is rebooted keep being stored here global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack and printer.getKey() == global_container_stack.getMetaDataEntry("um_network_key"): if printer.getKey() not in self._old_printers: # Was the printer already connected, but a re-scan forced? @@ -197,7 +274,8 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): else: self.getOutputDeviceManager().removeOutputDevice(key) - ## Handler for zeroConf detection + ## Handler for zeroConf detection. + # Return True or False indicating if the process succeeded. def _onServiceChanged(self, zeroconf, service_type, name, state_change): if state_change == ServiceStateChange.Added: Logger.log("d", "Bonjour service added: %s" % name) @@ -227,7 +305,53 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin): Logger.log("w", "The type of the found device is '%s', not 'printer'! Ignoring.." % type_of_device ) else: Logger.log("w", "Could not get information about %s" % name) + return False elif state_change == ServiceStateChange.Removed: Logger.log("d", "Bonjour service removed: %s" % name) - self.removePrinterSignal.emit(str(name)) \ No newline at end of file + self.removePrinterSignal.emit(str(name)) + + return True + + ## Appends a service changed request so later the handling thread will pick it up and processes it. + def _appendServiceChangedRequest(self, zeroconf, service_type, name, state_change): + # append the request and set the event so the event handling thread can pick it up + item = (zeroconf, service_type, name, state_change) + self._service_changed_request_queue.put(item) + self._service_changed_request_event.set() + + def _handleOnServiceChangedRequests(self): + while True: + # wait for the event to be set + self._service_changed_request_event.wait(timeout = 5.0) + # stop if the application is shutting down + if Application.getInstance().isShuttingDown(): + return + + self._service_changed_request_event.clear() + + # handle all pending requests + reschedule_requests = [] # a list of requests that have failed so later they will get re-scheduled + while not self._service_changed_request_queue.empty(): + request = self._service_changed_request_queue.get() + zeroconf, service_type, name, state_change = request + try: + result = self._onServiceChanged(zeroconf, service_type, name, state_change) + if not result: + reschedule_requests.append(request) + except Exception: + Logger.logException("e", "Failed to get service info for [%s] [%s], the request will be rescheduled", + service_type, name) + reschedule_requests.append(request) + + # re-schedule the failed requests if any + if reschedule_requests: + for request in reschedule_requests: + self._service_changed_request_queue.put(request) + + @pyqtSlot() + def openControlPanel(self): + Logger.log("d", "Opening print jobs web UI...") + selected_device = self.getOutputDeviceManager().getActiveDevice() + if isinstance(selected_device, NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice): + QDesktopServices.openUrl(QUrl(selected_device.getPrintJobsUrl())) diff --git a/plugins/UM3NetworkPrinting/OpenPanelButton.qml b/plugins/UM3NetworkPrinting/OpenPanelButton.qml new file mode 100644 index 0000000000..4bc1728f76 --- /dev/null +++ b/plugins/UM3NetworkPrinting/OpenPanelButton.qml @@ -0,0 +1,71 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.1 as UM + +Button { + objectName: "openPanelSaveAreaButton" + id: openPanelSaveAreaButton + + UM.I18nCatalog { id: catalog; name: "cura"; } + + height: UM.Theme.getSize("save_button_save_to_button").height + tooltip: catalog.i18nc("@info:tooltip", "Opens the print jobs page with your default web browser.") + text: catalog.i18nc("@action:button", "View print jobs") + + // FIXME: This button style is copied and duplicated from SaveButton.qml + style: ButtonStyle { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_border"); + else if(control.pressed) + return UM.Theme.getColor("print_button_ready_pressed_border"); + else if(control.hovered) + return UM.Theme.getColor("print_button_ready_hovered_border"); + else + return UM.Theme.getColor("print_button_ready_border"); + } + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled"); + else if(control.pressed) + return UM.Theme.getColor("print_button_ready_pressed"); + else if(control.hovered) + return UM.Theme.getColor("print_button_ready_hovered"); + else + return UM.Theme.getColor("print_button_ready"); + } + + Behavior on color { ColorAnimation { duration: 50; } } + + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) + + Label { + id: actualLabel + anchors.centerIn: parent + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_text"); + else if(control.pressed) + return UM.Theme.getColor("print_button_ready_text"); + else if(control.hovered) + return UM.Theme.getColor("print_button_ready_text"); + else + return UM.Theme.getColor("print_button_ready_text"); + } + font: UM.Theme.getFont("action_button") + text: control.text; + } + } + label: Item { } + } + + +} diff --git a/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml b/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml new file mode 100644 index 0000000000..03ff4542e1 --- /dev/null +++ b/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml @@ -0,0 +1,33 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM + + +Item +{ + id: extruderInfo + property var printCoreConfiguration + + width: Math.floor(parent.width / 2) + height: childrenRect.height + Label + { + id: materialLabel + text: printCoreConfiguration.material.material + " (" + printCoreConfiguration.material.color + ")" + elide: Text.ElideRight + width: parent.width + font: UM.Theme.getFont("very_small") + } + Label + { + id: printCoreLabel + text: printCoreConfiguration.print_core_id + anchors.top: materialLabel.bottom + elide: Text.ElideRight + width: parent.width + font: UM.Theme.getFont("very_small") + opacity: 0.5 + } +} diff --git a/plugins/UM3NetworkPrinting/PrintWindow.qml b/plugins/UM3NetworkPrinting/PrintWindow.qml new file mode 100644 index 0000000000..7afe174da2 --- /dev/null +++ b/plugins/UM3NetworkPrinting/PrintWindow.qml @@ -0,0 +1,103 @@ +// Copyright (c) 2015 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Window 2.2 +import QtQuick.Controls 1.2 + +import UM 1.1 as UM + +UM.Dialog +{ + id: base; + + minimumWidth: 500 * screenScaleFactor + minimumHeight: 140 * screenScaleFactor + maximumWidth: minimumWidth + maximumHeight: minimumHeight + width: minimumWidth + height: minimumHeight + + visible: true + modality: Qt.ApplicationModal + + title: catalog.i18nc("@title:window","Print over network") + + Column + { + id: printerSelection + anchors.fill: parent + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("default_margin").width + height: 50 * screenScaleFactor + + Label + { + id: manualPrinterSelectionLabel + anchors + { + left: parent.left + topMargin: UM.Theme.getSize("default_margin").height + right: parent.right + } + text: "Printer selection" + wrapMode: Text.Wrap + height: 20 * screenScaleFactor + } + + ComboBox + { + id: printerSelectionCombobox + model: OutputDevice.printers + textRole: "friendly_name" + + width: parent.width + height: 40 * screenScaleFactor + Behavior on height { NumberAnimation { duration: 100 } } + + onActivated: + { + var printerData = OutputDevice.printers[index]; + OutputDevice.selectPrinter(printerData.unique_name, printerData.friendly_name); + } + } + + SystemPalette + { + id: palette + } + + UM.I18nCatalog { id: catalog; name: "cura"; } + } + + leftButtons: [ + Button + { + text: catalog.i18nc("@action:button","Cancel") + enabled: true + onClicked: { + base.visible = false; + // reset to defaults + OutputDevice.selectAutomaticPrinter() + printerSelectionCombobox.currentIndex = 0 + } + } + ] + + rightButtons: [ + Button + { + text: catalog.i18nc("@action:button","Print") + enabled: true + onClicked: { + base.visible = false; + OutputDevice.sendPrintJob(); + // reset to defaults + OutputDevice.selectAutomaticPrinter() + printerSelectionCombobox.currentIndex = 0 + } + } + ] +} diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml new file mode 100644 index 0000000000..7ae8520d19 --- /dev/null +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -0,0 +1,450 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.3 as UM + +Rectangle +{ + function strPadLeft(string, pad, length) + { + return (new Array(length + 1).join(pad) + string).slice(-length); + } + + function getPrettyTime(time) + { + return OutputDevice.formatDuration(time) + } + + function formatPrintJobPercent(printJob) + { + if (printJob == null) + { + return ""; + } + if (printJob.time_total === 0) + { + return ""; + } + return Math.min(100, Math.round(printJob.time_elapsed / printJob.time_total * 100)) + "%"; + } + + function printerStatusText(printer) + { + switch (printer.status) + { + case "pre_print": + return catalog.i18nc("@label", "Preparing to print") + case "printing": + return catalog.i18nc("@label:status", "Printing"); + case "idle": + return catalog.i18nc("@label:status", "Available"); + case "unreachable": + return catalog.i18nc("@label:MonitorStatus", "Lost connection with the printer"); + case "maintenance": // TODO: new string + case "unknown": + default: + return catalog.i18nc("@label", "Unknown"); + } + } + + id: printerDelegate + property var printer + + border.width: UM.Theme.getSize("default_lining").width + border.color: mouse.containsMouse ? emphasisColor : lineColor + z: mouse.containsMouse ? 1 : 0 // Push this item up a bit on mouse over to ensure that the highlighted bottom border is visible. + + property var printJob: + { + if (printer.reserved_by != null) + { + // Look in another list. + return OutputDevice.printJobsByUUID[printer.reserved_by] + } + return OutputDevice.printJobsByPrinterUUID[printer.uuid] + } + + MouseArea + { + id: mouse + anchors.fill:parent + onClicked: OutputDevice.selectPrinter(printer.unique_name, printer.friendly_name) + hoverEnabled: true; + + // Only clickable if no printer is selected + enabled: OutputDevice.selectedPrinterName == "" && printer.status !== "unreachable" + } + + Row + { + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.margins: UM.Theme.getSize("default_margin").width + + Rectangle + { + width: Math.floor(parent.width / 3) + height: parent.height + + Label // Print job name + { + id: jobNameLabel + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + text: printJob != null ? printJob.name : "" + font: UM.Theme.getFont("default_bold") + elide: Text.ElideRight + + } + + Label + { + id: jobOwnerLabel + anchors.top: jobNameLabel.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + text: printJob != null ? printJob.owner : "" + opacity: 0.50 + elide: Text.ElideRight + } + + Label + { + id: totalTimeLabel + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + text: printJob != null ? getPrettyTime(printJob.time_total) : "" + opacity: 0.65 + font: UM.Theme.getFont("default") + elide: Text.ElideRight + } + } + + Rectangle + { + width: Math.floor(parent.width / 3 * 2) + height: parent.height + + Label // Friendly machine name + { + id: printerNameLabel + anchors.top: parent.top + anchors.left: parent.left + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width - showCameraIcon.width) + text: printer.friendly_name + font: UM.Theme.getFont("default_bold") + elide: Text.ElideRight + } + + Label // Machine variant + { + id: printerTypeLabel + anchors.top: printerNameLabel.bottom + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) + text: printer.machine_variant + anchors.left: parent.left + elide: Text.ElideRight + font: UM.Theme.getFont("very_small") + opacity: 0.50 + } + + Rectangle // Camera icon + { + id: showCameraIcon + width: 40 * screenScaleFactor + height: width + radius: width + anchors.right: printProgressArea.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + color: emphasisColor + opacity: printer != null && printer.status === "unreachable" ? 0.3 : 1 + + Image + { + width: parent.width + height: width + anchors.right: parent.right + anchors.rightMargin: parent.rightMargin + source: "camera-icon.svg" + } + } + + Row // PrintCore config + { + id: extruderInfo + anchors.bottom: parent.bottom + + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) + height: childrenRect.height + + spacing: UM.Theme.getSize("default_margin").width + + PrintCoreConfiguration + { + id: leftExtruderInfo + width: Math.floor((parent.width - extruderSeperator.width) / 2) + printCoreConfiguration: printer.configuration[0] + } + + Rectangle + { + id: extruderSeperator + width: UM.Theme.getSize("default_lining").width + height: parent.height + color: lineColor + } + + PrintCoreConfiguration + { + id: rightExtruderInfo + width: Math.floor((parent.width - extruderSeperator.width) / 2) + printCoreConfiguration: printer.configuration[1] + } + } + + Rectangle // Print progress + { + id: printProgressArea + anchors.right: parent.right + anchors.top: parent.top + height: showExtended ? parent.height: printProgressTitleBar.height + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) + border.width: UM.Theme.getSize("default_lining").width + border.color: lineColor + radius: cornerRadius + property var showExtended: { + if(printJob != null) + { + var extendStates = ["sent_to_printer", "wait_for_configuration", "printing", "pre_print", "post_print", "wait_cleanup", "queued"]; + return extendStates.indexOf(printJob.status) !== -1; + } + return !printer.enabled; + } + + Item // Status and Percent + { + id: printProgressTitleBar + + property var showPercent: { + return printJob != null && (["printing", "post_print", "pre_print", "sent_to_printer"].indexOf(printJob.status) !== -1); + } + + width: parent.width + //TODO: hardcoded value + height: 40 * screenScaleFactor + anchors.left: parent.left + + Label + { + id: statusText + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: progressText.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + text: { + if (!printer.enabled) + { + return catalog.i18nc("@label:status", "Disabled"); + } + + if (printer.status === "unreachable") + { + return printerStatusText(printer); + } + + if (printJob != null) + { + switch (printJob.status) + { + case "printing": + case "post_print": + return catalog.i18nc("@label:status", "Printing") + case "wait_for_configuration": + return catalog.i18nc("@label:status", "Reserved") + case "wait_cleanup": + return catalog.i18nc("@label:status", "Finished") + case "pre_print": + case "sent_to_printer": + return catalog.i18nc("@label", "Preparing to print") + case "queued": + if (printJob.configuration_changes_required != null && printJob.configuration_changes_required.length !== 0) + { + return catalog.i18nc("@label:status", "Action required"); + } + else + { + return ""; + } + case "pausing": + case "paused": + return catalog.i18nc("@label:status", "Paused"); + case "resuming": + return catalog.i18nc("@label:status", "Resuming"); + case "aborted": + return catalog.i18nc("@label:status", "Print aborted"); + default: + return printerStatusText(printer); + } + } + return printerStatusText(printer); + } + + elide: Text.ElideRight + font: UM.Theme.getFont("small") + } + + Label + { + id: progressText + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.top: statusText.top + + text: formatPrintJobPercent(printJob) + visible: printProgressTitleBar.showPercent + //TODO: Hardcoded value + opacity: 0.65 + font: UM.Theme.getFont("very_small") + } + + Image + { + width: statusText.height + height: width + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.top: statusText.top + + visible: !printProgressTitleBar.showPercent + + source: { + if (!printer.enabled) + { + return "blocked-icon.svg"; + } + + if (printer.status === "unreachable") + { + return ""; + } + + if (printJob != null) + { + if(printJob.status === "queued") + { + if (printJob.configuration_changes_required != null && printJob.configuration_changes_required.length !== 0) + { + return "action-required-icon.svg"; + } + } + else if (printJob.status === "wait_cleanup") + { + return "checkmark-icon.svg"; + } + } + return ""; // We're not going to show it, so it will not be resolved as a url. + } + } + + Rectangle + { + //TODO: This will become a progress bar in the future + width: parent.width + height: UM.Theme.getSize("default_lining").height + anchors.bottom: parent.bottom + anchors.left: parent.left + visible: printProgressArea.showExtended + color: lineColor + } + } + + Column + { + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + anchors.top: printProgressTitleBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + + width: parent.width - 2 * UM.Theme.getSize("default_margin").width + + visible: printProgressArea.showExtended + + Label // Status detail + { + text: + { + if (!printer.enabled) + { + return catalog.i18nc("@label", "Not accepting print jobs"); + } + + if (printer.status === "unreachable") + { + return ""; + } + + if(printJob != null) + { + switch (printJob.status) + { + case "printing": + case "post_print": + return catalog.i18nc("@label", "Finishes at: ") + OutputDevice.getTimeCompleted(printJob.time_total - printJob.time_elapsed) + case "wait_cleanup": + return catalog.i18nc("@label", "Clear build plate") + case "sent_to_printer": + case "pre_print": + return catalog.i18nc("@label", "Preparing to print") + case "wait_for_configuration": + return catalog.i18nc("@label", "Not accepting print jobs") + case "queued": + if (printJob.configuration_changes_required != undefined) + { + return catalog.i18nc("@label", "Waiting for configuration change"); + } + default: + return ""; + } + } + return ""; + } + anchors.left: parent.left + anchors.right: parent.right + elide: Text.ElideRight + wrapMode: Text.Wrap + + font: UM.Theme.getFont("default") + } + + Label // Status 2nd row + { + text: { + if(printJob != null) + { + if(printJob.status == "printing" || printJob.status == "post_print") + { + return OutputDevice.getDateCompleted(printJob.time_total - printJob.time_elapsed) + } + } + return ""; + } + + elide: Text.ElideRight + font: UM.Theme.getFont("default") + } + } + } + } + } +} diff --git a/plugins/UM3NetworkPrinting/PrinterTile.qml b/plugins/UM3NetworkPrinting/PrinterTile.qml new file mode 100644 index 0000000000..3d03e93688 --- /dev/null +++ b/plugins/UM3NetworkPrinting/PrinterTile.qml @@ -0,0 +1,54 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +Rectangle +{ + id: base + width: 250 * screenScaleFactor + height: 250 * screenScaleFactor + signal clicked() + MouseArea + { + anchors.fill:parent + onClicked: base.clicked() + } + Rectangle + { + // TODO: Actually add UM icon / picture + width: 100 * screenScaleFactor + height: 100 * screenScaleFactor + border.width: UM.Theme.getSize("default_lining").width + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + } + Label + { + id: nameLabel + anchors.bottom: ipLabel.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("default_margin").width + text: modelData.friendly_name.toString() + font: UM.Theme.getFont("large") + elide: Text.ElideMiddle; + height: UM.Theme.getSize("section").height; + } + Label + { + id: ipLabel + text: modelData.ip_address.toString() + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + font: UM.Theme.getFont("default") + height:10 * screenScaleFactor + anchors.horizontalCenter: parent.horizontalCenter + } +} + diff --git a/plugins/UM3NetworkPrinting/PrinterVideoStream.qml b/plugins/UM3NetworkPrinting/PrinterVideoStream.qml new file mode 100644 index 0000000000..6793d74ac5 --- /dev/null +++ b/plugins/UM3NetworkPrinting/PrinterVideoStream.qml @@ -0,0 +1,91 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.3 as UM + + +Item +{ + Rectangle + { + anchors.fill:parent + color: UM.Theme.getColor("viewport_overlay") + opacity: 0.5 + } + + MouseArea + { + anchors.fill: parent + onClicked: OutputDevice.selectAutomaticPrinter() + z: 0 + } + + Button + { + id: backButton + anchors.bottom: cameraImage.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").width + anchors.right: cameraImage.right + + // TODO: Harcoded sizes + width: 20 * screenScaleFactor + height: 20 * screenScaleFactor + + onClicked: OutputDevice.selectAutomaticPrinter() + + style: ButtonStyle + { + label: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: control.width + height: control.height + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon("cross1") + } + } + background: Item {} + } + } + + Image + { + id: cameraImage + width: Math.min(sourceSize.width === 0 ? 800 * screenScaleFactor : sourceSize.width, maximumWidth) + height: Math.floor((sourceSize.height === 0 ? 600 * screenScaleFactor : sourceSize.height) * width / sourceSize.width) + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + z: 1 + onVisibleChanged: + { + if(visible) + { + OutputDevice.startCamera() + } else + { + OutputDevice.stopCamera() + } + } + source: + { + if(OutputDevice.cameraImage) + { + return OutputDevice.cameraImage; + } + return ""; + } + } + + MouseArea + { + anchors.fill: cameraImage + onClicked: { /* no-op */ } + z: 1 + } + +} diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index a5ed944773..d0c95e1524 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -115,10 +115,24 @@ Item { tooltip: catalog.i18nc("@info:tooltip", "Load the configuration of the printer into Cura") text: catalog.i18nc("@action:button", "Activate Configuration") - visible: printerConnected + visible: printerConnected && !isClusterPrinter() onClicked: manager.loadConfigurationFromPrinter() + + function isClusterPrinter() { + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; + } } } UM.I18nCatalog{id: catalog; name:"cura"} -} \ No newline at end of file +} diff --git a/plugins/UM3NetworkPrinting/__init__.py b/plugins/UM3NetworkPrinting/__init__.py index 667733649b..37f863bd00 100644 --- a/plugins/UM3NetworkPrinting/__init__.py +++ b/plugins/UM3NetworkPrinting/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import NetworkPrinterOutputDevicePlugin from . import DiscoverUM3Action from UM.i18n import i18nCatalog diff --git a/plugins/UM3NetworkPrinting/action-required-icon.svg b/plugins/UM3NetworkPrinting/action-required-icon.svg new file mode 100644 index 0000000000..e7768849c6 --- /dev/null +++ b/plugins/UM3NetworkPrinting/action-required-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/plugins/UM3NetworkPrinting/blocked-icon.svg b/plugins/UM3NetworkPrinting/blocked-icon.svg new file mode 100644 index 0000000000..eba3efdab9 --- /dev/null +++ b/plugins/UM3NetworkPrinting/blocked-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/plugins/UM3NetworkPrinting/camera-icon.svg b/plugins/UM3NetworkPrinting/camera-icon.svg new file mode 100644 index 0000000000..29adfa5875 --- /dev/null +++ b/plugins/UM3NetworkPrinting/camera-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/checkmark-icon.svg b/plugins/UM3NetworkPrinting/checkmark-icon.svg new file mode 100644 index 0000000000..9d4507e551 --- /dev/null +++ b/plugins/UM3NetworkPrinting/checkmark-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/plugins/USBPrinting/FirmwareUpdateWindow.qml b/plugins/USBPrinting/FirmwareUpdateWindow.qml index f55aa4c56e..44218b61b1 100644 --- a/plugins/USBPrinting/FirmwareUpdateWindow.qml +++ b/plugins/USBPrinting/FirmwareUpdateWindow.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Window 2.2 @@ -11,10 +11,10 @@ UM.Dialog { id: base; - width: 500 * Screen.devicePixelRatio; - minimumWidth: 500 * Screen.devicePixelRatio; - height: 100 * Screen.devicePixelRatio; - minimumHeight: 100 * Screen.devicePixelRatio; + width: minimumWidth; + minimumWidth: 500 * screenScaleFactor; + height: minimumHeight; + minimumHeight: 100 * screenScaleFactor; visible: true; modality: Qt.ApplicationModal; diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 8ecb503ed8..3b9603cc1b 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from .avr_isp import stk500v2, ispBase, intelHex import serial # type: ignore @@ -119,7 +119,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._sendCommand("G0 Y%s F%s" % (z, speed)) def _homeHead(self): - self._sendCommand("G28") + self._sendCommand("G28 X") + self._sendCommand("G28 Y") def _homeBed(self): self._sendCommand("G28 Z") @@ -150,7 +151,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): def printGCode(self, gcode_list): Logger.log("d", "Started printing g-code") if self._progress or self._connection_state != ConnectionState.connected: - self._error_message = Message(catalog.i18nc("@info:status", "Unable to start a new job because the printer is busy or not connected.")) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to start a new job because the printer is busy or not connected."), title = catalog.i18nc("@info:title", "Printer Unavailable")) self._error_message.show() Logger.log("d", "Printer is busy or not connected, aborting print") self.writeError.emit(self) @@ -453,11 +454,11 @@ class USBPrinterOutputDevice(PrinterOutputDevice): container_stack = Application.getInstance().getGlobalContainerStack() if container_stack.getProperty("machine_gcode_flavor", "value") == "UltiGCode": - self._error_message = Message(catalog.i18nc("@info:status", "This printer does not support USB printing because it uses UltiGCode flavor.")) + self._error_message = Message(catalog.i18nc("@info:status", "This printer does not support USB printing because it uses UltiGCode flavor."), title = catalog.i18nc("@info:title", "USB Printing")) self._error_message.show() return elif not container_stack.getMetaDataEntry("supports_usb_connection"): - self._error_message = Message(catalog.i18nc("@info:status", "Unable to start a new job because the printer does not support usb printing.")) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to start a new job because the printer does not support usb printing."), title = catalog.i18nc("@info:title", "Warning")) self._error_message.show() return @@ -622,8 +623,9 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._sendCommand("M140 S0") self._sendCommand("M104 S0") self._sendCommand("M107") + # Home XY to prevent nozzle resting on aborted print + # Don't home bed because it may crash the printhead into the print on printers that home on the bottom self.homeHead() - self.homeBed() self._sendCommand("M84") self._is_printing = False self._is_paused = False diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 26cf5f3942..fe9095a08b 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from UM.Signal import Signal, signalemitter from . import USBPrinterOutputDevice @@ -105,7 +105,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): if file_name.startswith("file://"): file_name = QUrl(file_name).toLocalFile() # File dialogs prepend the path with file://, which we don't need / want if not self._usb_output_devices: - Message(i18n_catalog.i18nc("@info", "Unable to update firmware because there are no printers connected.")).show() + Message(i18n_catalog.i18nc("@info", "Unable to update firmware because there are no printers connected."), title = i18n_catalog.i18nc("@info:title", "Warning")).show() return for printer_connection in self._usb_output_devices: @@ -119,7 +119,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): self._usb_output_devices[printer_connection].setProgress(100, 100) Logger.log("w", "No firmware found for printer %s called '%s'", printer_connection, file_name) Message(i18n_catalog.i18nc("@info", - "Could not find firmware required for the printer at %s.") % printer_connection).show() + "Could not find firmware required for the printer at %s.") % printer_connection, title = i18n_catalog.i18nc("@info:title", "Printer Firmware")).show() self._firmware_view.close() continue @@ -230,12 +230,14 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): ## If one of the states of the connected devices change, we might need to add / remove them from the global list. def _onConnectionStateChanged(self, serial_port): + success = True try: if self._usb_output_devices[serial_port].connectionState == ConnectionState.connected: self.getOutputDeviceManager().addOutputDevice(self._usb_output_devices[serial_port]) else: - self.getOutputDeviceManager().removeOutputDevice(serial_port) - self.connectionStateChanged.emit() + success = success and self.getOutputDeviceManager().removeOutputDevice(serial_port) + if success: + self.connectionStateChanged.emit() except KeyError: Logger.log("w", "Connection state of %s changed, but it was not found in the list") diff --git a/plugins/USBPrinting/__init__.py b/plugins/USBPrinting/__init__.py index 990a59fdf3..1cc45c3c3b 100644 --- a/plugins/USBPrinting/__init__.py +++ b/plugins/USBPrinting/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import USBPrinterOutputDeviceManager from PyQt5.QtQml import qmlRegisterType, qmlRegisterSingletonType diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml index 6c34212cf9..262d5df376 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/plugins/UltimakerMachineActions/UM2UpgradeSelection.py b/plugins/UltimakerMachineActions/UM2UpgradeSelection.py index 6c972efbf0..c84033a98e 100644 --- a/plugins/UltimakerMachineActions/UM2UpgradeSelection.py +++ b/plugins/UltimakerMachineActions/UM2UpgradeSelection.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.InstanceContainer import InstanceContainer diff --git a/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml index 5e0096c6b0..988c9d6128 100644 --- a/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py index bcef734f61..f6275e5b56 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Uranium is released under the terms of the AGPLv3 or higher. +# Uranium is released under the terms of the LGPLv3 or higher. from UM.Settings.ContainerRegistry import ContainerRegistry from cura.MachineAction import MachineAction diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml index abb7588a39..2b973ca1bb 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml index 153d8254ef..72a77e992d 100644 --- a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml +++ b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/plugins/UltimakerMachineActions/__init__.py b/plugins/UltimakerMachineActions/__init__.py index 33b85387a4..864c501392 100644 --- a/plugins/UltimakerMachineActions/__init__.py +++ b/plugins/UltimakerMachineActions/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import BedLevelMachineAction from . import UpgradeFirmwareMachineAction diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py new file mode 100644 index 0000000000..f472b6fb13 --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -0,0 +1,53 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Extension import Extension +from UM.Preferences import Preferences +from UM.Application import Application +from UM.PluginRegistry import PluginRegistry +from UM.Logger import Logger + +from cura.CuraApplication import CuraApplication + +from PyQt5.QtQml import QQmlComponent, QQmlContext +from PyQt5.QtCore import QUrl, QObject, pyqtSlot + +import os.path + +class UserAgreement(QObject, Extension): + def __init__(self, parent = None): + super(UserAgreement, self).__init__() + self._user_agreement_window = None + self._user_agreement_context = None + Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) + Preferences.getInstance().addPreference("general/accepted_user_agreement", False) + + def _onEngineCreated(self): + if not Preferences.getInstance().getValue("general/accepted_user_agreement"): + self.showUserAgreement() + + def showUserAgreement(self): + if not self._user_agreement_window: + self.createUserAgreementWindow() + + self._user_agreement_window.show() + + @pyqtSlot(bool) + def didAgree(self, userChoice): + if userChoice: + Logger.log("i", "User agreed to the user agreement") + Preferences.getInstance().setValue("general/accepted_user_agreement", True) + self._user_agreement_window.hide() + else: + Logger.log("i", "User did NOT agree to the user agreement") + Preferences.getInstance().setValue("general/accepted_user_agreement", False) + CuraApplication.getInstance().quit() + CuraApplication.getInstance().setNeedToShowUserAgreement(False) + + def createUserAgreementWindow(self): + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) + + component = QQmlComponent(Application.getInstance()._engine, path) + self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._user_agreement_context.setContextProperty("manager", self) + self._user_agreement_window = component.create(self._user_agreement_context) diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml new file mode 100644 index 0000000000..52d35a4f44 --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -0,0 +1,64 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.4 + +import UM 1.3 as UM + +UM.Dialog +{ + id: baseDialog + minimumWidth: Math.floor(UM.Theme.getSize("modal_window_minimum").width * 0.75) + minimumHeight: Math.floor(UM.Theme.getSize("modal_window_minimum").height * 0.5) + width: minimumWidth + height: minimumHeight + title: catalog.i18nc("@title:window", "User Agreement") + + TextArea + { + anchors.top: parent.top + width: parent.width + anchors.bottom: buttonRow.top + text: '

DISCLAIMER BY ULTIMAKER

+

PLEASE READ THIS DISCLAIMER CAREFULLY.

+

EXCEPT WHEN OTHERWISE STATED IN WRITING, ULTIMAKER PROVIDES ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE “AS IS” WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF ULTIMAKER SOFTWARE IS WITH YOU.

+

UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, IN NO EVENT WILL ULTIMAKER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE.

+ ' + readOnly: true; + textFormat: TextEdit.RichText + } + + Item + { + id: buttonRow + anchors.bottom: parent.bottom + width: parent.width + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + + UM.I18nCatalog { id: catalog; name:"cura" } + + Button + { + anchors.right: parent.right + text: catalog.i18nc("@action:button", "I understand and agree") + onClicked: { + manager.didAgree(true) + } + } + + Button + { + anchors.left: parent.left + text: catalog.i18nc("@action:button", "I don't agree") + onClicked: { + manager.didAgree(false) + } + } + + } + + onClosing: { + manager.didAgree(false) + } +} diff --git a/plugins/UserAgreementPlugin/__init__.py b/plugins/UserAgreementPlugin/__init__.py new file mode 100644 index 0000000000..88cb151f9e --- /dev/null +++ b/plugins/UserAgreementPlugin/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import UserAgreement + +def getMetaData(): + return {} + +def register(app): + return {"extension": UserAgreement.UserAgreement()} diff --git a/plugins/UserAgreementPlugin/plugin.json b/plugins/UserAgreementPlugin/plugin.json new file mode 100644 index 0000000000..aa5dbb1258 --- /dev/null +++ b/plugins/UserAgreementPlugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "UserAgreement", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Ask the user once if he/she agrees with our license", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index faf9105cff..4a75b23c2f 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import UM.VersionUpgrade #To indicate that a file is of incorrect format. import UM.VersionUpgradeManager #To schedule more files to be upgraded. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py index 13c98395f2..842499da86 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To read config files. import io #To output config files to string. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 7cc404de6b..4316d5cafb 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To read config files. import io #To write config files to strings as if they were files. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 055d28b3ab..d8036491bf 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To get version numbers from config files. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py index b153bcf3ce..435621ec54 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import VersionUpgrade21to22 diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py index 9d508e553b..19f0563f10 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To get version numbers from config files. import os diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py index d7ac4ef452..fbdbf92a4b 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import VersionUpgrade diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py index 7d728884cb..e1c14be2e1 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py @@ -1,11 +1,16 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To parse the files we need to upgrade and write the new files. import io #To serialise configparser output to a string. +import os +from urllib.parse import quote_plus +from UM.Resources import Resources from UM.VersionUpgrade import VersionUpgrade +from cura.CuraApplication import CuraApplication + _removed_settings = { #Settings that were removed in 2.5. "start_layers_at_same_position", "sub_div_rad_mult" @@ -20,6 +25,11 @@ _split_settings = { #These settings should be copied to all settings it was spli # # All of these methods are essentially stateless. class VersionUpgrade25to26(VersionUpgrade): + + def __init__(self): + super().__init__() + self._current_fdm_printer_count = 2 + ## Gets the version number from a CFG file in Uranium's 2.5 format. # # Since the format may change, this is implemented for the 2.5 format only @@ -103,3 +113,188 @@ class VersionUpgrade25to26(VersionUpgrade): output = io.StringIO() parser.write(output) return [filename], [output.getvalue()] + + ## Upgrades a machine stack from version 2.5 to 2.6 + # + # \param serialised The serialised form of a quality profile. + # \param filename The name of the file to upgrade. + def upgradeMachineStack(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # NOTE: This is for Custom FDM printers + # In 2.5, Custom FDM printers don't support multiple extruders, but since 2.6 they do. + machine_id = parser["general"]["id"] + quality_container_id = parser["containers"]["2"] + material_container_id = parser["containers"]["3"] + + # we don't have definition_changes container in 2.5 + if "6" in parser["containers"]: + definition_container_id = parser["containers"]["6"] + else: + definition_container_id = parser["containers"]["5"] + + if definition_container_id == "custom" and not self._checkCustomFdmPrinterHasExtruderStack(machine_id): + # go through all extruders and make sure that this custom FDM printer has 8 extruder stacks. + self._acquireNextUniqueCustomFdmPrinterExtruderStackIdIndex() + for position in range(8): + self._createCustomFdmPrinterExtruderStack(machine_id, position, quality_container_id, material_container_id) + + # Update version numbers + parser["general"]["version"] = "3" + parser["metadata"]["setting_version"] = "1" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + + return [filename], [output.getvalue()] + + ## Acquires the next unique extruder stack index number for the Custom FDM Printer. + def _acquireNextUniqueCustomFdmPrinterExtruderStackIdIndex(self): + extruder_stack_dir = Resources.getPath(CuraApplication.ResourceTypes.ExtruderStack) + file_name_list = os.listdir(extruder_stack_dir) + file_name_list = [os.path.basename(file_name) for file_name in file_name_list] + while True: + self._current_fdm_printer_count += 1 + stack_id_exists = False + for position in range(8): + stack_id = "custom_extruder_%s" % (position + 1) + if self._current_fdm_printer_count > 1: + stack_id += " #%s" % self._current_fdm_printer_count + + if stack_id in file_name_list: + stack_id_exists = True + break + if not stack_id_exists: + break + + return self._current_fdm_printer_count + + def _checkCustomFdmPrinterHasExtruderStack(self, machine_id): + # go through all extruders and make sure that this custom FDM printer has extruder stacks. + extruder_stack_dir = Resources.getPath(CuraApplication.ResourceTypes.ExtruderStack) + has_extruders = False + for item in os.listdir(extruder_stack_dir): + file_path = os.path.join(extruder_stack_dir, item) + if not os.path.isfile(file_path): + continue + + parser = configparser.ConfigParser() + try: + parser.read([file_path]) + except: + # skip, it is not a valid stack file + continue + + if "metadata" not in parser: + continue + if "machine" not in parser["metadata"]: + continue + + if machine_id != parser["metadata"]["machine"]: + continue + has_extruders = True + break + + return has_extruders + + def _createCustomFdmPrinterExtruderStack(self, machine_id: str, position: int, quality_id: str, material_id: str): + stack_id = "custom_extruder_%s" % (position + 1) + if self._current_fdm_printer_count > 1: + stack_id += " #%s" % self._current_fdm_printer_count + + definition_id = "custom_extruder_%s" % (position + 1) + + # create a definition changes container for this stack + definition_changes_parser = self._getCustomFdmPrinterDefinitionChanges(stack_id) + definition_changes_id = definition_changes_parser["general"]["name"] + # create a user settings container + user_settings_parser = self._getCustomFdmPrinterUserSettings(stack_id) + user_settings_id = user_settings_parser["general"]["name"] + + parser = configparser.ConfigParser() + parser.add_section("general") + parser["general"]["version"] = str(2) + parser["general"]["name"] = "Extruder %s" % (position + 1) + parser["general"]["id"] = stack_id + + parser.add_section("metadata") + parser["metadata"]["type"] = "extruder_train" + parser["metadata"]["machine"] = machine_id + parser["metadata"]["position"] = str(position) + + parser.add_section("containers") + parser["containers"]["0"] = user_settings_id + parser["containers"]["1"] = "empty_quality_changes" + parser["containers"]["2"] = quality_id + parser["containers"]["3"] = material_id + parser["containers"]["4"] = "empty_variant" + parser["containers"]["5"] = definition_changes_id + parser["containers"]["6"] = definition_id + + definition_changes_output = io.StringIO() + definition_changes_parser.write(definition_changes_output) + definition_changes_filename = quote_plus(definition_changes_id) + ".inst.cfg" + + user_settings_output = io.StringIO() + user_settings_parser.write(user_settings_output) + user_settings_filename = quote_plus(user_settings_id) + ".inst.cfg" + + extruder_output = io.StringIO() + parser.write(extruder_output) + extruder_filename = quote_plus(stack_id) + ".extruder.cfg" + + extruder_stack_dir = Resources.getPath(CuraApplication.ResourceTypes.ExtruderStack) + definition_changes_dir = Resources.getPath(CuraApplication.ResourceTypes.DefinitionChangesContainer) + user_settings_dir = Resources.getPath(CuraApplication.ResourceTypes.UserInstanceContainer) + + with open(os.path.join(definition_changes_dir, definition_changes_filename), "w") as f: + f.write(definition_changes_output.getvalue()) + with open(os.path.join(user_settings_dir, user_settings_filename), "w") as f: + f.write(user_settings_output.getvalue()) + with open(os.path.join(extruder_stack_dir, extruder_filename), "w") as f: + f.write(extruder_output.getvalue()) + + ## Creates a definition changes container which doesn't contain anything for the Custom FDM Printers. + # The container ID will be automatically generated according to the given stack name. + def _getCustomFdmPrinterDefinitionChanges(self, stack_id: str): + # In 2.5, there is no definition_changes container for the Custom FDM printer, so it should be safe to use the + # default name unless some one names the printer as something like "Custom FDM Printer_settings". + definition_changes_id = stack_id + "_settings" + + parser = configparser.ConfigParser() + parser.add_section("general") + parser["general"]["version"] = str(2) + parser["general"]["name"] = definition_changes_id + parser["general"]["definition"] = "custom" + + parser.add_section("metadata") + parser["metadata"]["type"] = "definition_changes" + parser["metadata"]["setting_version"] = str(1) + + parser.add_section("values") + + return parser + + ## Creates a user settings container which doesn't contain anything for the Custom FDM Printers. + # The container ID will be automatically generated according to the given stack name. + def _getCustomFdmPrinterUserSettings(self, stack_id: str): + # For the extruder stacks created in the upgrade, also create user_settings containers so the user changes + # will be saved. + user_settings_id = stack_id + "_user" + + parser = configparser.ConfigParser() + parser.add_section("general") + parser["general"]["version"] = str(2) + parser["general"]["name"] = user_settings_id + parser["general"]["definition"] = "custom" + + parser.add_section("metadata") + parser["metadata"]["extruder"] = stack_id + parser["metadata"]["type"] = "user" + parser["metadata"]["setting_version"] = str(1) + + parser.add_section("values") + + return parser diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py index a3d2b274da..3014eca4a2 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import VersionUpgrade25to26 @@ -19,6 +19,7 @@ def getMetaData(): ("user", 2000000): ("user", 2000001, upgrade.upgradeInstanceContainer), ("quality", 2000000): ("quality", 2000001, upgrade.upgradeInstanceContainer), ("definition_changes", 2000000): ("definition_changes", 2000001, upgrade.upgradeInstanceContainer), + ("machine_stack", 3000000): ("machine_stack", 3000001, upgrade.upgradeMachineStack), }, "sources": { "quality_changes": { @@ -36,6 +37,10 @@ def getMetaData(): "definition_changes": { "get_version": upgrade.getCfgVersion, "location": {"./machine_instances"} + }, + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} } } } diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py index 78cd8a03c5..9d7c7646cc 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To check whether the appropriate exceptions are raised. import pytest #To register tests with. diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py index 4df64af95b..a2d78d8d9f 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To parse the files we need to upgrade and write the new files. import io #To serialise configparser output to a string. diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py index c309142c8f..699faacab6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import VersionUpgrade26to27 @@ -12,7 +12,7 @@ def getMetaData(): return { "version_upgrade": { # From To Upgrade function - ("machine_stack", 3000000): ("machine_stack", 3000002, upgrade.upgradeStack), + ("machine_stack", 3000001): ("machine_stack", 3000002, upgrade.upgradeStack), ("extruder_train", 3000000): ("extruder_train", 3000002, upgrade.upgradeStack), # In 2.6.x, Preferences are saved with "version = 4" and no setting_version. @@ -29,6 +29,7 @@ def getMetaData(): ("user", 2000001): ("user", 2000002, upgrade.upgradeOtherContainer), ("quality", 2000001): ("quality", 2000002, upgrade.upgradeOtherContainer), ("definition_changes", 2000001): ("definition_changes", 2000002, upgrade.upgradeOtherContainer), + ("variant", 2000000): ("variant", 2000002, upgrade.upgradeOtherContainer) }, "sources": { "machine_stack": { @@ -54,6 +55,10 @@ def getMetaData(): "definition_changes": { "get_version": upgrade.getCfgVersion, "location": {"./definition_changes"} + }, + "variant": { + "get_version": upgrade.getCfgVersion, + "location": {"./variants"} } } } diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py index f8e3561b38..eebaca23c6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import configparser #To check whether the appropriate exceptions are raised. import pytest #To register tests with. diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py new file mode 100644 index 0000000000..972d238921 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py @@ -0,0 +1,201 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser #To parse preference files. +import io #To serialise the preference files afterwards. +import os + +from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. + +_renamed_themes = { + "cura": "cura-light" +} +_renamed_i18n = { + "7s": "en_7S", + "de": "de_DE", + "en": "en_US", + "es": "es_ES", + "fi": "fi_FI", + "fr": "fr_FR", + "hu": "hu_HU", + "it": "it_IT", + "jp": "ja_JP", + "ko": "ko_KR", + "nl": "nl_NL", + "pl": "pl_PL", + "ptbr": "pt_BR", + "ru": "ru_RU", + "tr": "tr_TR" +} + + +class VersionUpgrade27to30(VersionUpgrade): + ## Gets the version number from a CFG file in Uranium's 2.7 format. + # + # Since the format may change, this is implemented for the 2.7 format only + # and needs to be included in the version upgrade system rather than + # globally in Uranium. + # + # \param serialised The serialised form of a CFG file. + # \return The version number stored in the CFG file. + # \raises ValueError The format of the version number in the file is + # incorrect. + # \raises KeyError The format of the file is incorrect. + def getCfgVersion(self, serialised): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + return format_version * 1000000 + setting_version + + ## Upgrades a preferences file from version 2.7 to 3.0. + # + # \param serialised The serialised form of a preferences file. + # \param filename The name of the file to upgrade. + def upgradePreferences(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "5" + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "3" + + #Renamed themes. + if "theme" in parser["general"]: + if parser["general"]["theme"] in _renamed_themes: + parser["general"]["theme"] = _renamed_themes[parser["general"]["theme"]] + + #Renamed languages. + if "language" in parser["general"]: + if parser["general"]["language"] in _renamed_i18n: + parser["general"]["language"] = _renamed_i18n[parser["general"]["language"]] + + # Renamed settings for skin pre-shrink settings + if parser.has_section("general") and "visible_settings" in parser["general"]: + visible_settings = parser["general"]["visible_settings"].split(";") + new_visible_settings = [] + renamed_skin_preshrink_names = {"expand_upper_skins": "top_skin_expand_distance", + "expand_lower_skins": "bottom_skin_expand_distance"} + for setting in visible_settings: + if setting == "expand_skins_into_infill": + continue # this one is removed + if setting in renamed_skin_preshrink_names: + new_visible_settings.append(renamed_skin_preshrink_names[setting]) + continue #Don't add the original. + new_visible_settings.append(setting) #No special handling, so just add the original visible setting back. + parser["general"]["visible_settings"] = ";".join(new_visible_settings) + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades the given quality changes container file from version 2.7 to 3.0. + # + # \param serialised The serialised form of the container file. + # \param filename The name of the file to upgrade. + def upgradeQualityChangesContainer(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update the skin pre-shrink settings: + # - Remove the old ones + # - Do not add the new ones. The default values will be used for them. + if parser.has_section("values"): + for remove_key in ["expand_skins_into_infill", "expand_upper_skins", "expand_lower_skins"]: + if remove_key in parser["values"]: + del parser["values"][remove_key] + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Set the definition to "ultimaker2" for Ultimaker 2 quality changes + if not parser.has_section("general"): + parser.add_section("general") + + # The ultimaker 2 family + ultimaker2_prefix_list = ["ultimaker2_extended_", + "ultimaker2_go_", + "ultimaker2_"] + # ultimaker 2+ is a different family, so don't do anything with those + exclude_prefix_list = ["ultimaker2_extended_plus_", + "ultimaker2_plus_"] + + # set machine definition to "ultimaker2" for the custom quality profiles that can be for the ultimaker 2 family + file_base_name = os.path.basename(filename) + is_ultimaker2_family = False + if not any(file_base_name.startswith(ep) for ep in exclude_prefix_list): + is_ultimaker2_family = any(file_base_name.startswith(ep) for ep in ultimaker2_prefix_list) + + # ultimaker2 family quality profiles used to set as "fdmprinter" profiles + if is_ultimaker2_family and parser["general"]["definition"] == "fdmprinter": + parser["general"]["definition"] = "ultimaker2" + + # Update version numbers + parser["general"]["version"] = "2" + parser["metadata"]["setting_version"] = "3" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades the given instance container file from version 2.7 to 3.0. + # + # \param serialised The serialised form of the container file. + # \param filename The name of the file to upgrade. + def upgradeOtherContainer(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update the skin pre-shrink settings: + # - Remove the old ones + # - Do not add the new ones. The default values will be used for them. + if parser.has_section("values"): + for remove_key in ["expand_skins_into_infill", "expand_upper_skins", "expand_lower_skins"]: + if remove_key in parser["values"]: + del parser["values"][remove_key] + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Update version numbers + parser["general"]["version"] = "2" + parser["metadata"]["setting_version"] = "3" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades a container stack from version 2.7 to 3.0. + # + # \param serialised The serialised form of a container stack. + # \param filename The name of the file to upgrade. + def upgradeStack(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "3" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "3" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py b/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py new file mode 100644 index 0000000000..396ce4abe0 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py @@ -0,0 +1,56 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import VersionUpgrade27to30 + +upgrade = VersionUpgrade27to30.VersionUpgrade27to30() + +def getMetaData(): + return { + "version_upgrade": { + # From To Upgrade function + ("preferences", 4000002): ("preferences", 5000003, upgrade.upgradePreferences), + + ("machine_stack", 3000002): ("machine_stack", 3000003, upgrade.upgradeStack), + ("extruder_train", 3000002): ("extruder_train", 3000003, upgrade.upgradeStack), + + ("quality_changes", 2000002): ("quality_changes", 2000003, upgrade.upgradeQualityChangesContainer), + ("user", 2000002): ("user", 2000003, upgrade.upgradeOtherContainer), + ("quality", 2000002): ("quality", 2000003, upgrade.upgradeOtherContainer), + ("definition_changes", 2000002): ("definition_changes", 2000003, upgrade.upgradeOtherContainer), + ("variant", 2000002): ("variant", 2000003, upgrade.upgradeOtherContainer) + }, + "sources": { + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, + "quality_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, + "user": { + "get_version": upgrade.getCfgVersion, + "location": {"./user"} + }, + "definition_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./definition_changes"} + }, + "variant": { + "get_version": upgrade.getCfgVersion, + "location": {"./variants"} + } + } + } + +def register(app): + return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json new file mode 100644 index 0000000000..3df84ff7e6 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json @@ -0,0 +1,8 @@ + { + "name": "Version Upgrade 2.7 to 3.0", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py new file mode 100644 index 0000000000..cae08ebcfd --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py @@ -0,0 +1,171 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser #To parse the resulting config files. +import pytest #To register tests with. + +import VersionUpgrade27to30 #The module we're testing. + +## Creates an instance of the upgrader to test with. +@pytest.fixture +def upgrader(): + return VersionUpgrade27to30.VersionUpgrade27to30() + +test_cfg_version_good_data = [ + { + "test_name": "Simple", + "file_data": """[general] +version = 1 +""", + "version": 1000000 + }, + { + "test_name": "Other Data Around", + "file_data": """[nonsense] +life = good + +[general] +version = 3 + +[values] +layer_height = 0.12 +infill_sparse_density = 42 +""", + "version": 3000000 + }, + { + "test_name": "Negative Version", #Why not? + "file_data": """[general] +version = -20 +""", + "version": -20000000 + }, + { + "test_name": "Setting Version", + "file_data": """[general] +version = 1 +[metadata] +setting_version = 1 +""", + "version": 1000001 + }, + { + "test_name": "Negative Setting Version", + "file_data": """[general] +version = 1 +[metadata] +setting_version = -3 +""", + "version": 999997 + } +] + +## Tests the technique that gets the version number from CFG files. +# +# \param data The parametrised data to test with. It contains a test name +# to debug with, the serialised contents of a CFG file and the correct +# version number in that CFG file. +# \param upgrader The instance of the upgrade class to test. +@pytest.mark.parametrize("data", test_cfg_version_good_data) +def test_cfgVersionGood(data, upgrader): + version = upgrader.getCfgVersion(data["file_data"]) + assert version == data["version"] + +test_cfg_version_bad_data = [ + { + "test_name": "Empty", + "file_data": "", + "exception": configparser.Error #Explicitly not specified further which specific error we're getting, because that depends on the implementation of configparser. + }, + { + "test_name": "No General", + "file_data": """[values] +layer_height = 0.1337 +""", + "exception": configparser.Error + }, + { + "test_name": "No Version", + "file_data": """[general] +true = false +""", + "exception": configparser.Error + }, + { + "test_name": "Not a Number", + "file_data": """[general] +version = not-a-text-version-number +""", + "exception": ValueError + }, + { + "test_name": "Setting Value NaN", + "file_data": """[general] +version = 4 +[metadata] +setting_version = latest_or_something +""", + "exception": ValueError + }, + { + "test_name": "Major-Minor", + "file_data": """[general] +version = 1.2 +""", + "exception": ValueError + } +] + +## Tests whether getting a version number from bad CFG files gives an +# exception. +# +# \param data The parametrised data to test with. It contains a test name +# to debug with, the serialised contents of a CFG file and the class of +# exception it needs to throw. +# \param upgrader The instance of the upgrader to test. +@pytest.mark.parametrize("data", test_cfg_version_bad_data) +def test_cfgVersionBad(data, upgrader): + with pytest.raises(data["exception"]): + upgrader.getCfgVersion(data["file_data"]) + +test_translate_theme_data = [ + ( + "Original Cura theme", + """[general] +version = 4 +theme = cura +[metadata] +setting_version = 2 +""", + "cura-light" + ), + ( + "No theme", + """[general] +version = 4 +[metadata] +setting_version = 2 +""", + None #Indicates that the theme should be absent in the new file. + ) +] + +## Tests whether the theme is properly translated. +@pytest.mark.parametrize("test_name, file_data, new_theme", test_translate_theme_data) +def test_translateTheme(test_name, file_data, new_theme, upgrader): + #Read old file. + original_parser = configparser.ConfigParser(interpolation = None) + original_parser.read_string(file_data) + + #Perform the upgrade. + _, upgraded_stacks = upgrader.upgradePreferences(file_data, "") + upgraded_stack = upgraded_stacks[0] + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(upgraded_stack) + + #Check whether the theme was properly translated. + if not new_theme: + assert "theme" not in parser["general"] + else: + assert "theme" in parser["general"] + assert parser["general"]["theme"] == new_theme \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py new file mode 100644 index 0000000000..4672cb1488 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py @@ -0,0 +1,141 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser #To parse preference files. +import io #To serialise the preference files afterwards. + +from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. + + +# a list of all legacy "Not Supported" quality profiles +_OLD_NOT_SUPPORTED_PROFILES = [ + "um2p_pp_0.25_normal", + "um2p_tpu_0.8_normal", + "um3_bb0.4_ABS_Fast_Print", + "um3_bb0.4_ABS_Superdraft_Print", + "um3_bb0.4_CPEP_Fast_Print", + "um3_bb0.4_CPEP_Superdraft_Print", + "um3_bb0.4_CPE_Fast_Print", + "um3_bb0.4_CPE_Superdraft_Print", + "um3_bb0.4_Nylon_Fast_Print", + "um3_bb0.4_Nylon_Superdraft_Print", + "um3_bb0.4_PC_Fast_Print", + "um3_bb0.4_PLA_Fast_Print", + "um3_bb0.4_PLA_Superdraft_Print", + "um3_bb0.4_PP_Fast_Print", + "um3_bb0.4_PP_Superdraft_Print", + "um3_bb0.4_TPU_Fast_Print", + "um3_bb0.4_TPU_Superdraft_Print", + "um3_bb0.8_ABS_Fast_Print", + "um3_bb0.8_ABS_Superdraft_Print", + "um3_bb0.8_CPEP_Fast_Print", + "um3_bb0.8_CPEP_Superdraft_Print", + "um3_bb0.8_CPE_Fast_Print", + "um3_bb0.8_CPE_Superdraft_Print", + "um3_bb0.8_Nylon_Fast_Print", + "um3_bb0.8_Nylon_Superdraft_Print", + "um3_bb0.8_PC_Fast_Print", + "um3_bb0.8_PC_Superdraft_Print", + "um3_bb0.8_PLA_Fast_Print", + "um3_bb0.8_PLA_Superdraft_Print", + "um3_bb0.8_PP_Fast_Print", + "um3_bb0.8_PP_Superdraft_Print", + "um3_bb0.8_TPU_Fast_print", + "um3_bb0.8_TPU_Superdraft_Print", +] + + +class VersionUpgrade30to31(VersionUpgrade): + ## Gets the version number from a CFG file in Uranium's 3.0 format. + # + # Since the format may change, this is implemented for the 3.0 format only + # and needs to be included in the version upgrade system rather than + # globally in Uranium. + # + # \param serialised The serialised form of a CFG file. + # \return The version number stored in the CFG file. + # \raises ValueError The format of the version number in the file is + # incorrect. + # \raises KeyError The format of the file is incorrect. + def getCfgVersion(self, serialised): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + return format_version * 1000000 + setting_version + + ## Upgrades a preferences file from version 3.0 to 3.1. + # + # \param serialised The serialised form of a preferences file. + # \param filename The name of the file to upgrade. + def upgradePreferences(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "5" + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades the given instance container file from version 3.0 to 3.1. + # + # \param serialised The serialised form of the container file. + # \param filename The name of the file to upgrade. + def upgradeInstanceContainer(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Update version numbers + parser["general"]["version"] = "2" + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + + ## Upgrades a container stack from version 3.0 to 3.1. + # + # \param serialised The serialised form of a container stack. + # \param filename The name of the file to upgrade. + def upgradeStack(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # change "not supported" quality profiles to empty because they no longer exist + if parser.has_section("containers"): + if parser.has_option("containers", "2"): + quality_profile_id = parser["containers"]["2"] + if quality_profile_id in _OLD_NOT_SUPPORTED_PROFILES: + parser["containers"]["2"] = "empty_quality" + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "3" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py new file mode 100644 index 0000000000..b4b75dddf7 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py @@ -0,0 +1,56 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import VersionUpgrade30to31 + +upgrade = VersionUpgrade30to31.VersionUpgrade30to31() + +def getMetaData(): + return { + "version_upgrade": { + # From To Upgrade function + ("preferences", 5000003): ("preferences", 5000004, upgrade.upgradePreferences), + + ("machine_stack", 3000003): ("machine_stack", 3000004, upgrade.upgradeStack), + ("extruder_train", 3000003): ("extruder_train", 3000004, upgrade.upgradeStack), + + ("quality_changes", 2000003): ("quality_changes", 2000004, upgrade.upgradeInstanceContainer), + ("user", 2000003): ("user", 2000004, upgrade.upgradeInstanceContainer), + ("quality", 2000003): ("quality", 2000004, upgrade.upgradeInstanceContainer), + ("definition_changes", 2000003): ("definition_changes", 2000004, upgrade.upgradeInstanceContainer), + ("variant", 2000003): ("variant", 2000004, upgrade.upgradeInstanceContainer) + }, + "sources": { + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, + "quality_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, + "user": { + "get_version": upgrade.getCfgVersion, + "location": {"./user"} + }, + "definition_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./definition_changes"} + }, + "variant": { + "get_version": upgrade.getCfgVersion, + "location": {"./variants"} + } + } + } + +def register(app): + return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json new file mode 100644 index 0000000000..d80b820976 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json @@ -0,0 +1,8 @@ + { + "name": "Version Upgrade 3.0 to 3.1", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/X3DReader/X3DReader.py b/plugins/X3DReader/X3DReader.py index f78023dfab..e4a59dcdaa 100644 --- a/plugins/X3DReader/X3DReader.py +++ b/plugins/X3DReader/X3DReader.py @@ -1,5 +1,5 @@ # Contributed by Seva Alekseyev with National Institutes of Health, 2016 -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from math import pi, sin, cos, sqrt diff --git a/plugins/XRayView/XRayPass.py b/plugins/XRayView/XRayPass.py index 6700ee51a5..38c88a256e 100644 --- a/plugins/XRayView/XRayPass.py +++ b/plugins/XRayView/XRayPass.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path diff --git a/plugins/XRayView/XRayView.py b/plugins/XRayView/XRayView.py index 931ecb1975..35509a9715 100644 --- a/plugins/XRayView/XRayView.py +++ b/plugins/XRayView/XRayView.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os.path @@ -56,7 +56,8 @@ class XRayView(View): # Currently the RenderPass constructor requires a size > 0 # This should be fixed in RenderPass's constructor. self._xray_pass = XRayPass.XRayPass(1, 1) - self.getRenderer().addRenderPass(self._xray_pass) + + self.getRenderer().addRenderPass(self._xray_pass) if not self._xray_composite_shader: self._xray_composite_shader = OpenGL.getInstance().createShaderProgram(os.path.join(PluginRegistry.getInstance().getPluginPath("XRayView"), "xray_composite.shader")) @@ -74,5 +75,6 @@ class XRayView(View): self._composite_pass.setCompositeShader(self._xray_composite_shader) if event.type == Event.ViewDeactivateEvent: + self.getRenderer().removeRenderPass(self._xray_pass) self._composite_pass.setLayerBindings(self._old_layer_bindings) self._composite_pass.setCompositeShader(self._old_composite_shader) diff --git a/plugins/XRayView/__init__.py b/plugins/XRayView/__init__.py index e726001216..f56351ec48 100644 --- a/plugins/XRayView/__init__.py +++ b/plugins/XRayView/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import XRayView @@ -9,7 +9,7 @@ catalog = i18nCatalog("cura") def getMetaData(): return { "view": { - "name": catalog.i18nc("@item:inlistbox", "X-Ray"), + "name": catalog.i18nc("@item:inlistbox", "X-Ray view"), "weight": 1 } } diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index a814776cef..d2177d31c9 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import copy import io @@ -33,9 +33,10 @@ class XmlMaterialProfile(InstanceContainer): # # \param xml_version: The version number found in an XML file. # \return The corresponding setting_version. - def xmlVersionToSettingVersion(self, xml_version: str) -> int: + @classmethod + def xmlVersionToSettingVersion(cls, xml_version: str) -> int: if xml_version == "1.3": - return 2 + return CuraApplication.SettingVersion return 0 #Older than 1.3. def getInheritedFiles(self): @@ -221,10 +222,15 @@ class XmlMaterialProfile(InstanceContainer): machine_container_map[definition_id] = container + # Map machine human-readable names to IDs + product_id_map = {} + for container in registry.findDefinitionContainers(type = "machine"): + product_id_map[container.getName()] = container.getId() + for definition_id, container in machine_container_map.items(): definition = container.getDefinition() try: - product = UM.Dictionary.findKey(self.__product_id_map, definition_id) + product = UM.Dictionary.findKey(product_id_map, definition_id) except ValueError: # An unknown product id; export it anyway product = definition_id @@ -403,20 +409,22 @@ class XmlMaterialProfile(InstanceContainer): def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]: return "materials" - def getVersionFromSerialized(self, serialized: str) -> Optional[int]: + @classmethod + def getVersionFromSerialized(cls, serialized: str) -> Optional[int]: data = ET.fromstring(serialized) - version = 1 + version = XmlMaterialProfile.Version # get setting version if "version" in data.attrib: - setting_version = self.xmlVersionToSettingVersion(data.attrib["version"]) + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion(data.attrib["version"]) else: - setting_version = self.xmlVersionToSettingVersion("1.2") + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion("1.2") return version * 1000000 + setting_version ## Overridden from InstanceContainer def deserialize(self, serialized): + containers_to_add = [] # update the serialized data first from UM.Settings.Interfaces import ContainerInterface serialized = ContainerInterface.deserialize(self, serialized) @@ -504,8 +512,6 @@ class XmlMaterialProfile(InstanceContainer): elif key in self.__unmapped_settings: if key == "hardware compatible": common_compatibility = self._parseCompatibleValue(entry.text) - else: - Logger.log("d", "Unsupported material setting %s", key) # Add namespaced Cura-specific settings settings = data.iterfind("./um:settings/cura:setting", self.__namespaces) @@ -519,6 +525,11 @@ class XmlMaterialProfile(InstanceContainer): self.setMetaData(meta_data) self._dirty = False + # Map machine human-readable names to IDs + product_id_map = {} + for container in ContainerRegistry.getInstance().findDefinitionContainers(type = "machine"): + product_id_map[container.getName()] = container.getId() + machines = data.iterfind("./um:settings/um:machine", self.__namespaces) for machine in machines: machine_compatibility = common_compatibility @@ -545,7 +556,7 @@ class XmlMaterialProfile(InstanceContainer): identifiers = machine.iterfind("./um:machine_identifier", self.__namespaces) for identifier in identifiers: - machine_id = self.__product_id_map.get(identifier.get("product"), None) + machine_id = product_id_map.get(identifier.get("product"), None) if machine_id is None: # Lets try again with some naive heuristics. machine_id = identifier.get("product").replace(" ", "").lower() @@ -562,7 +573,17 @@ class XmlMaterialProfile(InstanceContainer): if machine_compatibility: new_material_id = self.id + "_" + machine_id - new_material = XmlMaterialProfile(new_material_id) + # The child or derived material container may already exist. This can happen when a material in a + # project file and the a material in Cura have the same ID. + # In the case if a derived material already exists, override that material container because if + # the data in the parent material has been changed, the derived ones should be updated too. + found_materials = ContainerRegistry.getInstance().findInstanceContainers(id = new_material_id) + is_new_material = False + if found_materials: + new_material = found_materials[0] + else: + new_material = XmlMaterialProfile(new_material_id) + is_new_material = True # Update the private directly, as we want to prevent the lookup that is done when using setName new_material._name = self.getName() @@ -576,7 +597,8 @@ class XmlMaterialProfile(InstanceContainer): new_material._dirty = False - ContainerRegistry.getInstance().addContainer(new_material) + if is_new_material: + containers_to_add.append(new_material) hotends = machine.iterfind("./um:hotend", self.__namespaces) for hotend in hotends: @@ -614,7 +636,15 @@ class XmlMaterialProfile(InstanceContainer): new_hotend_id = self.id + "_" + machine_id + "_" + hotend_id.replace(" ", "_") - new_hotend_material = XmlMaterialProfile(new_hotend_id) + # Same as machine compatibility, keep the derived material containers consistent with the parent + # material + found_materials = ContainerRegistry.getInstance().findInstanceContainers(id = new_hotend_id) + is_new_material = False + if found_materials: + new_hotend_material = found_materials[0] + else: + new_hotend_material = XmlMaterialProfile(new_hotend_id) + is_new_material = True # Update the private directly, as we want to prevent the lookup that is done when using setName new_hotend_material._name = self.getName() @@ -632,7 +662,11 @@ class XmlMaterialProfile(InstanceContainer): new_hotend_material._dirty = False - ContainerRegistry.getInstance().addContainer(new_hotend_material) + if is_new_material: + containers_to_add.append(new_hotend_material) + + for container_to_add in containers_to_add: + ContainerRegistry.getInstance().addContainer(container_to_add) def _addSettingElement(self, builder, instance): key = instance.definition.key @@ -669,7 +703,9 @@ class XmlMaterialProfile(InstanceContainer): "processing temperature graph": "material_flow_temp_graph", "print cooling": "cool_fan_speed", "retraction amount": "retraction_amount", - "retraction speed": "retraction_speed" + "retraction speed": "retraction_speed", + "adhesion tendency": "material_adhesion_tendency", + "surface energy": "material_surface_energy" } __unmapped_settings = [ "hardware compatible" @@ -681,21 +717,6 @@ class XmlMaterialProfile(InstanceContainer): "GUID": "material_guid" } - # Map XML file product names to internal ids - # TODO: Move this to definition's metadata - __product_id_map = { - "Ultimaker 3": "ultimaker3", - "Ultimaker 3 Extended": "ultimaker3_extended", - "Ultimaker 2": "ultimaker2", - "Ultimaker 2+": "ultimaker2_plus", - "Ultimaker 2 Go": "ultimaker2_go", - "Ultimaker 2 Extended": "ultimaker2_extended", - "Ultimaker 2 Extended+": "ultimaker2_extended_plus", - "Ultimaker Original": "ultimaker_original", - "Ultimaker Original+": "ultimaker_original_plus", - "IMADE3D JellyBOX": "imade3d_jellybox" - } - # Map of recognised namespaces with a proper prefix. __namespaces = { "um": "http://www.ultimaker.com/material", diff --git a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py index c93c476c2e..167a9f2849 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py +++ b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py @@ -1,28 +1,20 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import xml.etree.ElementTree as ET from UM.VersionUpgrade import VersionUpgrade +from cura.CuraApplication import CuraApplication +from .XmlMaterialProfile import XmlMaterialProfile + class XmlMaterialUpgrader(VersionUpgrade): def getXmlVersion(self, serialized): - data = ET.fromstring(serialized) - - version = 1 - # get setting version - if "version" in data.attrib: - setting_version = self._xmlVersionToSettingVersion(data.attrib["version"]) - else: - setting_version = self._xmlVersionToSettingVersion("1.2") - - return version * 1000000 + setting_version + return XmlMaterialProfile.getVersionFromSerialized(serialized) def _xmlVersionToSettingVersion(self, xml_version: str) -> int: - if xml_version == "1.3": - return 2 - return 0 #Older than 1.3. + return XmlMaterialProfile.xmlVersionToSettingVersion(xml_version) def upgradeMaterial(self, serialised, filename): data = ET.fromstring(serialised) diff --git a/plugins/XmlMaterialProfile/__init__.py b/plugins/XmlMaterialProfile/__init__.py index 6ad4a279d0..70a359ee76 100644 --- a/plugins/XmlMaterialProfile/__init__.py +++ b/plugins/XmlMaterialProfile/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from . import XmlMaterialProfile from . import XmlMaterialUpgrader @@ -19,7 +19,7 @@ def getMetaData(): "mimetype": "application/x-ultimaker-material-profile" }, "version_upgrade": { - ("materials", 1000000): ("materials", 1000002, upgrader.upgradeMaterial), + ("materials", 1000000): ("materials", 1000004, upgrader.upgradeMaterial), }, "sources": { "materials": { diff --git a/resources/definitions/101Hero.def.json b/resources/definitions/101Hero.def.json index c629cb3769..3d19aef626 100644 --- a/resources/definitions/101Hero.def.json +++ b/resources/definitions/101Hero.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "rikky", "manufacturer": "101Hero", - "category": "Other", "machine_extruder_trains": { "0": "fdmextruder" diff --git a/resources/definitions/3dator.def.json b/resources/definitions/3dator.def.json index fd67f3b797..b72a49a35b 100644 --- a/resources/definitions/3dator.def.json +++ b/resources/definitions/3dator.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "3Dator GmbH", "manufacturer": "3Dator GmbH", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "supports_usb_connection": true, diff --git a/resources/definitions/abax_pri3.def.json b/resources/definitions/abax_pri3.def.json index cf1f2b466d..fa826e6f94 100644 --- a/resources/definitions/abax_pri3.def.json +++ b/resources/definitions/abax_pri3.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "ABAX 3d Technologies", "manufacturer": "ABAX 3d Technologies", - "category": "Other", "file_formats": "text/x-gcode" }, "overrides": { diff --git a/resources/definitions/abax_pri5.def.json b/resources/definitions/abax_pri5.def.json index aa2a7eec22..b5588e5c96 100644 --- a/resources/definitions/abax_pri5.def.json +++ b/resources/definitions/abax_pri5.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "ABAX 3d Technologies", "manufacturer": "ABAX 3d Technologies", - "category": "Other", "file_formats": "text/x-gcode" }, "overrides": { diff --git a/resources/definitions/abax_titan.def.json b/resources/definitions/abax_titan.def.json index 75f1267b4f..53b768c93f 100644 --- a/resources/definitions/abax_titan.def.json +++ b/resources/definitions/abax_titan.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "ABAX 3d Technologies", "manufacturer": "ABAX 3d Technologies", - "category": "Other", "file_formats": "text/x-gcode" }, "overrides": { diff --git a/resources/definitions/alya3dp.def.json b/resources/definitions/alya3dp.def.json index 8d1eb6730c..5fa6630f51 100644 --- a/resources/definitions/alya3dp.def.json +++ b/resources/definitions/alya3dp.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "ALYA", "manufacturer": "ALYA", - "category": "Other", "file_formats": "text/x-gcode" }, diff --git a/resources/definitions/bfb.def.json b/resources/definitions/bfb.def.json index b685b3d94d..fddec169c5 100644 --- a/resources/definitions/bfb.def.json +++ b/resources/definitions/bfb.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "BFB", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/bq_hephestos.def.json b/resources/definitions/bq_hephestos.def.json index 9a49ecc1ae..91eeecb500 100644 --- a/resources/definitions/bq_hephestos.def.json +++ b/resources/definitions/bq_hephestos.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "BQ", "manufacturer": "BQ", - "category": "Other", "file_formats": "text/x-gcode", "platform": "bq_hephestos_platform.stl", "platform_offset": [ 0, -82, 0] diff --git a/resources/definitions/bq_hephestos_2.def.json b/resources/definitions/bq_hephestos_2.def.json index 68f06e390f..272e547af0 100644 --- a/resources/definitions/bq_hephestos_2.def.json +++ b/resources/definitions/bq_hephestos_2.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "BQ", "manufacturer": "BQ", - "category": "Other", "platform": "bq_hephestos_2_platform.stl", "platform_offset": [6, 1320, 0 ], "file_formats": "text/x-gcode" diff --git a/resources/definitions/bq_hephestos_xl.def.json b/resources/definitions/bq_hephestos_xl.def.json index 504f94c0ed..a5a183b1e9 100644 --- a/resources/definitions/bq_hephestos_xl.def.json +++ b/resources/definitions/bq_hephestos_xl.def.json @@ -7,7 +7,6 @@ "visible": true, "manufacturer": "BQ", "author": "BQ", - "category": "Other", "file_formats": "text/x-code", "platform": "bq_hephestos_platform.stl", "platform_offset": [ 0, -82, 0] diff --git a/resources/definitions/bq_witbox.def.json b/resources/definitions/bq_witbox.def.json index 4dfa3c805f..ca14151e7a 100644 --- a/resources/definitions/bq_witbox.def.json +++ b/resources/definitions/bq_witbox.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "BQ", "manufacturer": "BQ", - "category": "Other", "file_formats": "text/x-gcode", "platform": "bq_witbox_platform.stl", "platform_offset": [ 0, -145, -38] diff --git a/resources/definitions/bq_witbox_2.def.json b/resources/definitions/bq_witbox_2.def.json index a3ef0925ba..f634d9c9c8 100644 --- a/resources/definitions/bq_witbox_2.def.json +++ b/resources/definitions/bq_witbox_2.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "BQ", "manufacturer": "BQ", - "category": "Other", "file_formats": "text/x-gcode", "platform": "bq_witbox_platform.stl", "platform_offset": [0, -145, -38] diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json new file mode 100644 index 0000000000..5fc4b46c98 --- /dev/null +++ b/resources/definitions/builder_premium_large.def.json @@ -0,0 +1,117 @@ +{ + "id": "builder_premium_large", + "version": 2, + "name": "Builder Premium Large", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_large_rear", + "1": "builder_premium_large_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Large" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 600 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json new file mode 100644 index 0000000000..56dab8f863 --- /dev/null +++ b/resources/definitions/builder_premium_medium.def.json @@ -0,0 +1,117 @@ +{ + "id": "builder_premium_medium", + "version": 2, + "name": "Builder Premium Medium", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_medium_rear", + "1": "builder_premium_medium_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Medium" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 400 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json new file mode 100644 index 0000000000..65103ce1af --- /dev/null +++ b/resources/definitions/builder_premium_small.def.json @@ -0,0 +1,116 @@ +{ + "id": "builder_premium_small", + "version": 2, + "name": "Builder Premium Small", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_small_rear", + "1": "builder_premium_small_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Small" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 200 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/cartesio.def.json b/resources/definitions/cartesio.def.json index e5253f3b75..45b0111209 100644 --- a/resources/definitions/cartesio.def.json +++ b/resources/definitions/cartesio.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Scheepers", "manufacturer": "Cartesio bv", - "category": "Other", "file_formats": "text/x-gcode", "has_machine_quality": true, diff --git a/resources/definitions/creality_cr10.def.json b/resources/definitions/creality_cr10.def.json new file mode 100644 index 0000000000..bacae6e2e5 --- /dev/null +++ b/resources/definitions/creality_cr10.def.json @@ -0,0 +1,90 @@ +{ + "id": "creality_cr10", + "name": "Creality CR-10", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Michael Wildermuth", + "manufacturer": "Creality3D", + "file_formats": "text/x-gcode", + "preferred_quality": "*Draft*" + }, + "overrides": { + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 400 + }, + "machine_depth": { + "default_value": 300 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "top_bottom_thickness": { + "default_value": 0.6 + }, + "top_bottom_pattern": { + "default_value": "concentric" + }, + "infill_pattern": { + "value": "'triangles'" + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 5 + }, + "retraction_speed": { + "default_value": 40 + }, + "cool_min_layer_time": { + "default_value": 10 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "skirt_line_count": { + "default_value": 4 + }, + "skirt_gap": { + "default_value": 5 + }, + "machine_end_gcode": { + "default_value": "G91\nG1 F1800 E-3\nG1 F3000 Z10\nG90\nG28 X0 Y0 ; home x and y axis\nM106 S0 ; turn off cooling fan\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors" + }, + "machine_heated_bed": { + "default_value": true + }, + "gantry_height": { + "default_value": 30 + }, + "acceleration_enabled": { + "default_value": true + }, + "acceleration_print": { + "default_value": 500 + }, + "acceleration_travel": { + "default_value": 500 + }, + "jerk_enabled": { + "default_value": true + }, + "jerk_print": { + "default_value": 20 + }, + "jerk_travel": { + "default_value": 20 + } + } +} \ No newline at end of file diff --git a/resources/definitions/creality_cr10s4.def.json b/resources/definitions/creality_cr10s4.def.json new file mode 100644 index 0000000000..13c2e53391 --- /dev/null +++ b/resources/definitions/creality_cr10s4.def.json @@ -0,0 +1,23 @@ +{ + "id": "creality_cr10s4", + "name": "Creality CR-10 S4", + "version": 2, + "inherits": "creality_cr10", + "metadata": { + "visible": true, + "author": "Michael Wildermuth", + "manufacturer": "Creality3D", + "file_formats": "text/x-gcode" + }, + "overrides": { + "machine_width": { + "default_value": 400 + }, + "machine_height": { + "default_value": 400 + }, + "machine_depth": { + "default_value": 400 + } + } +} \ No newline at end of file diff --git a/resources/definitions/creality_cr10s5.def.json b/resources/definitions/creality_cr10s5.def.json new file mode 100644 index 0000000000..15cf0b93d9 --- /dev/null +++ b/resources/definitions/creality_cr10s5.def.json @@ -0,0 +1,23 @@ +{ + "id": "creality_cr10s5", + "name": "Creality CR-10 S5", + "version": 2, + "inherits": "creality_cr10", + "metadata": { + "visible": true, + "author": "Michael Wildermuth", + "manufacturer": "Creality3D", + "file_formats": "text/x-gcode" + }, + "overrides": { + "machine_width": { + "default_value": 500 + }, + "machine_height": { + "default_value": 500 + }, + "machine_depth": { + "default_value": 500 + } + } +} \ No newline at end of file diff --git a/resources/definitions/dagoma_discoeasy200.def.json b/resources/definitions/dagoma_discoeasy200.def.json old mode 100755 new mode 100644 index 718c5b0873..8f1a792bc0 --- a/resources/definitions/dagoma_discoeasy200.def.json +++ b/resources/definitions/dagoma_discoeasy200.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Dagoma", "manufacturer": "Dagoma", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", "platform": "discoeasy200.stl", diff --git a/resources/definitions/delta_go.def.json b/resources/definitions/delta_go.def.json index ccb659f973..36e0787039 100644 --- a/resources/definitions/delta_go.def.json +++ b/resources/definitions/delta_go.def.json @@ -4,39 +4,38 @@ "version": 2, "inherits": "fdmprinter", "metadata": { - "visible": true, - "author": "Deltaprintr", - "manufacturer": "Deltaprintr", - "category": "Other", - "file_formats": "text/x-gcode", - "platform_offset": [ 0, 0, 0], - "platform": "" - }, + "visible": true, + "author": "Deltaprintr", + "manufacturer": "Deltaprintr", + "file_formats": "text/x-gcode", + "platform_offset": [0, 0, 0], + "platform": "" + }, "overrides": { - "machine_name": { "default_value": "Delta Go" }, - "material_diameter": { "default_value": 1.75 }, - "default_material_print_temperature": { "default_value": 210 }, - "speed_travel": { "default_value": 150 }, - "prime_tower_size": { "default_value": 8.66 }, - "infill_sparse_density": { "default_value": 10 }, - "speed_wall_x": { "default_value": 30 }, - "speed_wall_0": { "default_value": 30 }, - "speed_topbottom": { "default_value": 20 }, - "layer_height": { "default_value": 0.15 }, - "speed_print": { "default_value": 30 }, - "machine_heated_bed": { "default_value": false }, - "machine_center_is_zero": { "default_value": true }, - "machine_height": { "default_value": 154 }, - "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_depth": { "default_value": 115 }, - "machine_width": { "default_value": 115 }, - "raft_airgap": { "default_value": 0.15 }, - "retraction_hop_enabled": { "value": "True" }, - "retraction_amount": { "default_value": 4.1 }, - "retraction_speed": { "default_value": 500 }, - "retraction_hop": { "value": "0.2" }, - "retraction_hop_only_when_collides": { "value": "True" }, - "brim_width": { "value": "5" }, - "machine_shape": { "default_value": "elliptic"} - } + "machine_name": { "default_value": "Delta Go" }, + "material_diameter": { "default_value": 1.75 }, + "default_material_print_temperature": { "default_value": 210 }, + "speed_travel": { "default_value": 150 }, + "prime_tower_size": { "default_value": 8.66 }, + "infill_sparse_density": { "default_value": 10 }, + "speed_wall_x": { "default_value": 30 }, + "speed_wall_0": { "default_value": 30 }, + "speed_topbottom": { "default_value": 20 }, + "layer_height": { "default_value": 0.15 }, + "speed_print": { "default_value": 30 }, + "machine_heated_bed": { "default_value": false }, + "machine_center_is_zero": { "default_value": true }, + "machine_height": { "default_value": 154 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_depth": { "default_value": 115 }, + "machine_width": { "default_value": 115 }, + "raft_airgap": { "default_value": 0.15 }, + "retraction_hop_enabled": { "value": "True" }, + "retraction_amount": { "default_value": 4.1 }, + "retraction_speed": { "default_value": 500 }, + "retraction_hop": { "value": "0.2" }, + "retraction_hop_only_when_collides": { "value": "True" }, + "brim_width": { "value": "5" }, + "machine_shape": { "default_value": "elliptic"} + } } diff --git a/resources/definitions/deltabot.def.json b/resources/definitions/deltabot.def.json index 1132f7e7bb..cee5ab1be1 100644 --- a/resources/definitions/deltabot.def.json +++ b/resources/definitions/deltabot.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Danny Lu", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/deltacomb.def.json b/resources/definitions/deltacomb.def.json new file mode 100644 index 0000000000..031bd12156 --- /dev/null +++ b/resources/definitions/deltacomb.def.json @@ -0,0 +1,66 @@ +{ + "id": "deltacomb", + "version": 2, + "name": "Deltacomb 3D", + "inherits": "fdmprinter", + "metadata": { + "author": "Gabriele Rossetti", + "visible": true, + "manufacturer": "Deltacomb 3D", + "category": "Other", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2", + "platform": "deltacomb.stl", + "has_machine_quality": true + }, + + "overrides": { + "machine_heated_bed": { "default_value": false }, + "machine_width": { "default_value": 190 }, + "machine_height": { "default_value": 250 }, + "machine_depth": { "default_value": 190 }, + "machine_center_is_zero": { "default_value": true }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."}, + "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning" }, + "machine_shape": { "default_value": "elliptic" }, + "machine_max_feedrate_x": { "default_value": 250 }, + "machine_max_feedrate_y": { "default_value": 250 }, + "machine_max_feedrate_z": { "default_value": 15 }, + "machine_max_acceleration_x": { "default_value": 10000 }, + "machine_max_acceleration_y": { "default_value": 10000 }, + "machine_max_acceleration_z": { "default_value": 50 }, + "machine_max_acceleration_e": { "default_value": 100 }, + "machine_acceleration": { "default_value": 4000 }, + "machine_max_jerk_xy": { "default_value": 25.0 }, + "machine_max_jerk_z": { "default_value": 0.4 }, + "machine_max_jerk_e": { "default_value": 1.0 }, + "retraction_hop_enabled": { "default_value": false }, + "retraction_amount" : { "default_value": 4.5 }, + "retraction_speed" : { "default_value": 40 }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature - 5" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "travel_avoid_distance": { "default_value": 1, "value": 1 }, + "speed_print" : { "default_value": 70 }, + "speed_travel": { "default_value": 80, "value": 80 }, + "speed_infill": { "value": "round(speed_print * 1.05, 0)" }, + "speed_topbottom": { "value": "round(speed_print * 0.95, 0)" }, + "speed_wall": { "value": "speed_print" }, + "speed_wall_0": { "value": "round(speed_print * 0.9, 0)" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" }, + "speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" }, + "skirt_brim_speed": { "value": "speed_layer_0" }, + "skirt_line_count": { "default_value": 3 }, + "skirt_brim_minimal_length": { "default_value": 150 }, + "infill_sparse_density": { "default_value": 24 }, + "top_bottom_thickness": { "default_value": 0.6 }, + "support_z_distance": { "default_value": 0.2, "value": "min(2 * layer_height, machine_nozzle_size * 0.75)" }, + "infill_before_walls" : { "default_value": false }, + "support_use_towers" : { "default_value": false } + } +} diff --git a/resources/definitions/easyarts_ares.def.json b/resources/definitions/easyarts_ares.def.json index 12273ed9ce..8d3e5338b6 100644 --- a/resources/definitions/easyarts_ares.def.json +++ b/resources/definitions/easyarts_ares.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "nliaudat", "manufacturer": "EasyArts (discontinued)", - "category": "Other", "file_formats": "text/x-gcode" }, "overrides": { diff --git a/resources/definitions/fabtotum.def.json b/resources/definitions/fabtotum.def.json new file mode 100644 index 0000000000..eb33280401 --- /dev/null +++ b/resources/definitions/fabtotum.def.json @@ -0,0 +1,71 @@ +{ + "id": "fabtotum", + "version": 2, + "name": "FABtotum Personal Fabricator", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "FABtotum", + "manufacturer": "FABtotum", + "category": "Other", + "file_formats": "text/x-gcode", + "platform": "fabtotum_platform.stl", + "icon": "fabtotum_platform.png", + "has_machine_quality": true, + "has_variants": true, + "variants_name": "Head", + "preferred_variant": "*lite04*", + "preferred_material": "*fabtotum_pla*", + "supports_usb_connection": false + }, + + "overrides": { + "machine_name": { "default_value": "FABtotum Personal Fabricator" }, + "machine_start_gcode": { + "default_value": ";Layer height: {layer_height}\n;Walls: {wall_thickness}\n;Fill: {infill_sparse_density}\n;Top\\Bottom Thickness: {top_bottom_thickness}\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nG4 S1 ;1 millisecond pause to buffer the bep bep \nM728 ;FAB bep bep (start the print, go check the oozing and skirt lines adesion) \nG4 S1 ;1 second pause to reach the printer (run fast)\nG92 E0 ;zero the extruded length \nG1 F200 E35 ;slowly extrude 35mm of filament to clean the nozzle and build up extrusion pressure \nG92 E0 ;zero the extruded length again \nG1 F{speed_travel} ;Set travel speed \n;print" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-3 X+5 Y+5 F5000 ;move Z up a bit and retract filament even more\n;end of the print\nM84 ;steppers off\nG90 ;absolute positioning\nM728 ;FAB bep bep (end print)" + }, + "gantry_height": { "default_value": 55 }, + "machine_width": { "default_value": 214 }, + "machine_height": { "default_value": 241.5 }, + "machine_depth": { "default_value": 234 }, + "machine_center_is_zero": { "default_value": false }, + "machine_heated_bed": { "default_value": true }, + "machine_nozzle_size": { "default_value": 0.4 }, + "machine_head_with_fans_polygon": { "default_value": [[-75, 35], [-75, -18], [18, 35], [18, -18]] }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_max_feedrate_x": { "default_value": 250 }, + "machine_max_feedrate_y": { "default_value": 250 }, + "machine_max_feedrate_z": { "default_value": 15 }, + "machine_max_acceleration_x": { "default_value": 10000 }, + "machine_max_acceleration_y": { "default_value": 10000 }, + "machine_max_acceleration_z": { "default_value": 50 }, + "machine_max_acceleration_e": { "default_value": 100 }, + "machine_acceleration": { "default_value": 4000 }, + "machine_max_jerk_xy": { "default_value": 25.0 }, + "machine_max_jerk_z": { "default_value": 0.4 }, + "machine_max_jerk_e": { "default_value": 1.0 }, + "retraction_hop_enabled": { "default_value": false }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature - 5" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "travel_avoid_distance": { "default_value": 1, "value": 1 }, + "speed_travel": { "default_value": 200, "value": 200 }, + "speed_infill": { "value": "round(speed_print * 1.05, 0)" }, + "speed_topbottom": { "value": "round(speed_print * 0.95, 0)" }, + "speed_wall": { "value": "speed_print" }, + "speed_wall_0": { "value": "round(speed_print * 0.9, 0)" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" }, + "speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" }, + "skirt_brim_speed": { "value": "speed_layer_0" }, + "skirt_line_count": { "default_value": 3 }, + "skirt_brim_minimal_length": { "default_value": 150 }, + "infill_sparse_density": { "default_value": 24 }, + "top_bottom_thickness": { "default_value": 0.6 }, + "support_z_distance": { "default_value": 0.2, "value": "min(2 * layer_height, machine_nozzle_size * 0.75)" }, + "support_interface_enable": { "default_value": true } + } +} diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json old mode 100755 new mode 100644 index bdb95a6de3..b17769eba2 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6,7 +6,7 @@ { "type": "machine", "author": "Ultimaker", - "category": "Ultimaker", + "category": "Other", "manufacturer": "Unknown", "setting_version": 1, "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g", @@ -566,6 +566,7 @@ "unit": "mm/s", "type": "float", "default_value": 20.0, + "minimum_value": "0", "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": false @@ -577,6 +578,7 @@ "unit": "mm/s", "type": "float", "default_value": 0.4, + "minimum_value": "0", "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": false @@ -588,6 +590,7 @@ "unit": "mm/s", "type": "float", "default_value": 5.0, + "minimum_value": "0", "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": false @@ -633,13 +636,27 @@ "unit": "mm", "type": "float", "default_value": 0.3, - "resolve": "sum(extruderValues('layer_height_0')) / len(extruderValues('layer_height_0'))", + "resolve": "min(extruderValues('layer_height_0'))", "minimum_value": "0.001", "minimum_value_warning": "0.1", "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", "settable_per_mesh": false, "settable_per_extruder": false }, + "slicing_tolerance": + { + "label": "Slicing Tolerance", + "description": "How to slice layers with diagonal surfaces. The areas of a layer can be generated based on where the middle of the layer intersects the surface (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the height of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Exclusive retains the most details, Inclusive makes for the best fit and Middle takes the least time to process.", + "type": "enum", + "options": + { + "middle": "Middle", + "exclusive": "Exclusive", + "inclusive": "Inclusive" + }, + "default_value": "middle", + "settable_per_mesh": true + }, "line_width": { "label": "Line Width", @@ -665,7 +682,7 @@ "value": "line_width", "default_value": 0.4, "type": "float", - "limit_to_extruder": "wall_extruder_nr", + "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", "settable_per_mesh": true, "children": { @@ -870,21 +887,20 @@ "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "settable_per_mesh": true, + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, "enabled": "machine_extruder_count > 1", - "children": - { + "children": { "wall_0_extruder_nr": { "label": "Outer Wall Extruder", "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", "type": "optional_extruder", - "default_value": "-1", "value": "wall_extruder_nr", - "settable_per_mesh": true, + "default_value": "-1", + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, @@ -892,12 +908,12 @@ }, "wall_x_extruder_nr": { - "label": "Inner Walls Extruder", + "label": "Inner Wall Extruder", "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", "type": "optional_extruder", - "default_value": "-1", "value": "wall_extruder_nr", - "settable_per_mesh": true, + "default_value": "-1", + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, @@ -915,7 +931,7 @@ "minimum_value_warning": "line_width", "maximum_value_warning": "10 * line_width", "type": "float", - "limit_to_extruder": "wall_extruder_nr", + "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true, "children": { @@ -929,7 +945,7 @@ "maximum_value_warning": "10", "type": "int", "value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0", - "limit_to_extruder": "wall_extruder_nr", + "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true } } @@ -954,11 +970,11 @@ "type": "optional_extruder", "default_value": "-1", "value": "top_bottom_extruder_nr", - "settable_per_mesh": true, + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, - "enabled": "machine_extruder_count > 1 and roofing_layer_count > 0 and top_layers > 0" + "enabled": "machine_extruder_count > 1 and max(extruderValues('roofing_layer_count')) > 0 and max(extruderValues('top_layers')) > 0" }, "roofing_layer_count": { @@ -1007,7 +1023,7 @@ "description": "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "settable_per_mesh": true, + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, @@ -1166,7 +1182,7 @@ "description": "Compensate the flow for parts of a wall being printed where there is already a wall in place.", "type": "bool", "default_value": true, - "limit_to_extruder": "wall_extruder_nr", + "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true, "children": { @@ -1246,9 +1262,10 @@ { "back": "User Specified", "shortest": "Shortest", - "random": "Random" + "random": "Random", + "sharpest_corner": "Sharpest Corner" }, - "default_value": "shortest", + "default_value": "sharpest_corner", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -1276,6 +1293,23 @@ "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, + "z_seam_corner": + { + "label": "Seam Corner Preference", + "description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner.", + "type": "enum", + "options": + { + "z_seam_corner_none": "None", + "z_seam_corner_inner": "Hide Seam", + "z_seam_corner_outer": "Expose Seam", + "z_seam_corner_any": "Hide or Expose Seam" + }, + "default_value": "z_seam_corner_inner", + "enabled": "z_seam_type != 'random'", + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + }, "z_seam_relative": { "label": "Z Seam Relative", @@ -1295,6 +1329,17 @@ "default_value": true, "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true + }, + "skin_outline_count": + { + "label": "Extra Skin Wall Count", + "description": "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material.", + "default_value": 1, + "minimum_value": "0", + "maximum_value_warning": "10", + "type": "int", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true } } }, @@ -1312,7 +1357,7 @@ "description": "The extruder train used for printing infill. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "settable_per_mesh": true, + "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, @@ -1340,7 +1385,7 @@ "default_value": 2, "minimum_value": "0", "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' else 1)))", + "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true } @@ -1349,19 +1394,23 @@ "infill_pattern": { "label": "Infill Pattern", - "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction.", + "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", "type": "enum", "options": { "grid": "Grid", "lines": "Lines", "triangles": "Triangles", + "trihexagon": "Tri-Hexagon", "cubic": "Cubic", "cubicsubdiv": "Cubic Subdivision", - "tetrahedral": "Tetrahedral", + "tetrahedral": "Octet", + "quarter_cubic": "Quarter Cubic", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross", + "cross_3d": "Cross 3D" }, "default_value": "grid", "enabled": "infill_sparse_density > 0", @@ -1369,6 +1418,15 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "zig_zaggify_infill": + { + "label": "Connect Infill Lines", + "description": "Connect the ends where the infill pattern meets the inner wall using a line which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduce the effects of infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", + "settable_per_mesh": true + }, "infill_angles": { "label": "Infill Line Directions", @@ -1379,6 +1437,28 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "infill_offset_x": + { + "label": "Infill X Offset", + "description": "The infill pattern is offset this distance along the X axis.", + "unit": "mm", + "type": "float", + "default_value": 0, + "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, + "infill_offset_y": + { + "label": "Infill Y Offset", + "description": "The infill pattern is offset this distance along the Y axis.", + "unit": "mm", + "type": "float", + "default_value": 0, + "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "sub_div_rad_add": { "label": "Cubic Subdivision Shell", @@ -1489,7 +1569,7 @@ "default_value": 0, "type": "int", "minimum_value": "0", - "maximum_value_warning": "5", + "maximum_value_warning": "1 if (infill_pattern == 'cross' or infill_pattern == 'cross_3d' or support_pattern == 'concentric' or support_pattern == 'concentric_3d') else 5", "maximum_value": "0 if spaghetti_infill_enabled else (999999 if infill_line_distance == 0 else (20 - math.log(infill_line_distance) / math.log(2)))", "enabled": "infill_sparse_density > 0 and infill_pattern != 'cubicsubdiv' and not spaghetti_infill_enabled", "limit_to_extruder": "infill_extruder_nr", @@ -1514,7 +1594,7 @@ "description": "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface.", "type": "bool", "default_value": true, - "enabled": "infill_sparse_density > 0 and wall_extruder_nr == infill_extruder_nr", + "enabled": "infill_sparse_density > 0 and wall_x_extruder_nr == infill_extruder_nr", "settable_per_mesh": true }, "min_infill_area": @@ -1528,34 +1608,41 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, - "expand_skins_into_infill": + "skin_preshrink": { - "label": "Expand Skins Into Infill", - "description": "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin.", - "type": "bool", - "default_value": false, + "label": "Skin Removal Width", + "description": "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model.", + "unit": "mm", + "type": "float", + "default_value": 0, + "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", + "minimum_value": "0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, "children": { - "expand_upper_skins": + "top_skin_preshrink": { - "label": "Expand Top Skins Into Infill", - "description": "Expand the top skin areas (areas with air above) so that they support infill above.", - "type": "bool", - "default_value": false, - "value": "expand_skins_into_infill", + "label": "Top Skin Removal Width", + "description": "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model.", + "unit": "mm", + "type": "float", + "default_value": 0, + "value": "skin_preshrink", + "minimum_value": "0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, - "expand_lower_skins": + "bottom_skin_preshrink": { - "label": "Expand Bottom Skins Into Infill", - "description": "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below.", - "type": "bool", - "default_value": false, + "label": "Bottom Skin Removal Width", + "description": "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model.", + "unit": "mm", + "type": "float", + "default_value": 0, + "value": "skin_preshrink", + "minimum_value": "0", "limit_to_extruder": "top_bottom_extruder_nr", - "value": "expand_skins_into_infill", "settable_per_mesh": true } } @@ -1563,15 +1650,41 @@ "expand_skins_expand_distance": { "label": "Skin Expand Distance", - "description": "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient.", + "description": "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used.", "unit": "mm", "type": "float", "default_value": 2.8, - "value": "infill_line_distance * 1.4", - "minimum_value": "0", - "enabled": "expand_upper_skins or expand_lower_skins", + "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", + "minimum_value": "-skin_preshrink", "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "top_skin_expand_distance": + { + "label": "Top Skin Expand Distance", + "description": "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used.", + "unit": "mm", + "type": "float", + "default_value": 2.8, + "value": "expand_skins_expand_distance", + "minimum_value": "-top_skin_preshrink", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true + }, + "bottom_skin_expand_distance": + { + "label": "Bottom Skin Expand Distance", + "description": "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used.", + "unit": "mm", + "type": "float", + "default_value": 2.8, + "value": "expand_skins_expand_distance", + "minimum_value": "-bottom_skin_preshrink", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true + } + } }, "max_skin_angle_for_expansion": { @@ -1581,10 +1694,9 @@ "type": "float", "minimum_value": "0", "minimum_value_warning": "2", - "maximum_value_warning": "45", "maximum_value": "90", - "default_value": 20, - "enabled": "expand_upper_skins or expand_lower_skins", + "default_value": 90, + "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, "children": @@ -1598,7 +1710,7 @@ "default_value": 2.24, "value": "top_layers * layer_height / math.tan(math.radians(max_skin_angle_for_expansion))", "minimum_value": "0", - "enabled": "expand_upper_skins or expand_lower_skins", + "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true } @@ -1770,6 +1882,31 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "material_adhesion_tendency": + { + "label": "Adhesion Tendency", + "description": "Surface adhesion tendency.", + "type": "int", + "default_value": 10, + "minimum_value": "0", + "maximum_value": "10", + "enabled": false, + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "material_surface_energy": + { + "label": "Surface Energy", + "description": "Surface energy.", + "unit": "%", + "type": "int", + "default_value": 100, + "minimum_value": "0", + "maximum_value": "100", + "enabled": false, + "settable_per_mesh": false, + "settable_per_extruder": true + }, "material_flow": { "label": "Flow", @@ -2043,7 +2180,6 @@ "maximum_value_warning": "150", "default_value": 30, "value": "speed_print / 2", - "limit_to_extruder": "wall_extruder_nr", "settable_per_mesh": true, "children": { @@ -2381,7 +2517,6 @@ "default_value": 3000, "value": "acceleration_print", "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_extruder_nr", "settable_per_mesh": true, "children": { @@ -2640,7 +2775,7 @@ "description": "The maximum instantaneous velocity change of the print head.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "enabled": "resolveOrValue('jerk_enabled')", @@ -2653,7 +2788,7 @@ "description": "The maximum instantaneous velocity change with which infill is printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", @@ -2667,12 +2802,11 @@ "description": "The maximum instantaneous velocity change with which the walls are printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_extruder_nr", "settable_per_mesh": true, "children": { @@ -2682,7 +2816,7 @@ "description": "The maximum instantaneous velocity change with which the outermost walls are printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall", @@ -2696,7 +2830,7 @@ "description": "The maximum instantaneous velocity change with which all inner walls are printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall", @@ -2712,7 +2846,7 @@ "description": "The maximum instantaneous velocity change with which top surface skin layers are printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_topbottom", @@ -2726,7 +2860,7 @@ "description": "The maximum instantaneous velocity change with which top/bottom layers are printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", @@ -2740,7 +2874,7 @@ "description": "The maximum instantaneous velocity change with which the support structure is printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", @@ -2758,7 +2892,7 @@ "type": "float", "default_value": 20, "value": "jerk_support", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled') and support_enable", "limit_to_extruder": "support_infill_extruder_nr", @@ -2773,7 +2907,7 @@ "type": "float", "default_value": 20, "value": "jerk_support", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and support_enable", "limit_to_extruder": "support_interface_extruder_nr", @@ -2789,7 +2923,7 @@ "type": "float", "default_value": 20, "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and support_enable", "limit_to_extruder": "support_roof_extruder_nr", @@ -2804,7 +2938,7 @@ "type": "float", "default_value": 20, "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and support_enable", "limit_to_extruder": "support_bottom_extruder_nr", @@ -2821,7 +2955,7 @@ "description": "The maximum instantaneous velocity change with which the prime tower is printed.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", @@ -2837,7 +2971,7 @@ "unit": "mm/s", "type": "float", "default_value": 30, - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "value": "jerk_print if magic_spiralize else 30", "enabled": "resolveOrValue('jerk_enabled')", @@ -2851,7 +2985,7 @@ "type": "float", "default_value": 20, "value": "jerk_print", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled')", "settable_per_mesh": true, @@ -2865,7 +2999,7 @@ "type": "float", "default_value": 20, "value": "jerk_layer_0", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled')", "settable_per_mesh": true @@ -2878,7 +3012,7 @@ "type": "float", "default_value": 20, "value": "jerk_layer_0 * jerk_travel / jerk_print", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "enabled": "resolveOrValue('jerk_enabled')", "settable_per_extruder": true, @@ -2893,7 +3027,7 @@ "unit": "mm/s", "type": "float", "default_value": 20, - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "value": "jerk_layer_0", "enabled": "resolveOrValue('jerk_enabled')", @@ -2979,7 +3113,7 @@ "unit": "mm", "type": "float", "default_value": 0.0, - "minimum_value": "0", + "minimum_value": "machine_width / -2 if machine_center_is_zero else 0", "settable_per_mesh": false, "settable_per_extruder": true, "settable_per_meshgroup": true @@ -2991,7 +3125,7 @@ "unit": "mm", "type": "float", "default_value": 0.0, - "minimum_value": "0", + "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", "settable_per_mesh": false, "settable_per_extruder": true, "settable_per_meshgroup": true @@ -3316,7 +3450,8 @@ "triangles": "Triangles", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross" }, "default_value": "zigzag", "enabled": "support_enable", @@ -3335,30 +3470,6 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "support_skip_some_zags": - { - "label": "Skip Some ZigZags Connections", - "description": "Skip some ZigZags connections to make the support structure easier to break.", - "type": "bool", - "default_value": false, - "enabled": "support_enable and (support_pattern == 'zigzag')", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_zag_skip_count": - { - "label": "ZigZag Connection Skip Count", - "description": "Skip one in every N connection lines to make the support structure easier to break.", - "type": "int", - "default_value": 6, - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "support_infill_rate": { "label": "Support Density", @@ -3551,7 +3662,7 @@ "default_value": 0, "type": "int", "minimum_value": "0", - "maximum_value_warning": "5", + "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric' or support_pattern == 'concentric_3d') else 5", "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", "enabled": "support_enable and support_infill_rate > 0", "limit_to_extruder": "support_infill_extruder_nr", @@ -3954,7 +4065,7 @@ "skirt_gap": { "label": "Skirt Distance", - "description": "The horizontal distance between the skirt and the first layer of the print.\nThis is the minimum distance, multiple skirt lines will extend outwards from this distance.", + "description": "The horizontal distance between the skirt and the first layer of the print.\nThis is the minimum distance. Multiple skirt lines will extend outwards from this distance.", "unit": "mm", "type": "float", "default_value": 3, @@ -4038,7 +4149,7 @@ "raft_smoothing": { "label": "Raft Smoothing", - "description": "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", + "description": "This setting controls how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", "unit": "mm", "type": "float", "default_value": 5, @@ -4372,7 +4483,7 @@ "unit": "mm/s", "type": "float", "default_value": 20, - "minimum_value": "0.1", + "minimum_value": "0", "minimum_value_warning": "5", "maximum_value_warning": "50", "value": "jerk_print", @@ -4389,7 +4500,7 @@ "type": "float", "default_value": 20, "value": "raft_jerk", - "minimum_value": "0.1", + "minimum_value": "0", "minimum_value_warning": "5", "maximum_value_warning": "100", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", @@ -4404,7 +4515,7 @@ "type": "float", "default_value": 20, "value": "raft_jerk", - "minimum_value": "0.1", + "minimum_value": "0", "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", @@ -4419,7 +4530,7 @@ "type": "float", "default_value": 20, "value": "raft_jerk", - "minimum_value": "0.1", + "minimum_value": "0", "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", @@ -4631,7 +4742,7 @@ "unit": "mm³", "default_value": 0, "minimum_value": "0", - "maximum_value_warning": "0.5", + "maximum_value_warning": "1", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -4749,6 +4860,16 @@ "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true + }, + "remove_empty_first_layers": + { + "label": "Remove Empty First Layers", + "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", + "type": "bool", + "default_value": true, + "enabled": "not support_enable", + "settable_per_mesh": false, + "settable_per_extruder": false } } }, @@ -4924,6 +5045,17 @@ "enabled": "magic_spiralize", "settable_per_mesh": false, "settable_per_extruder": false + }, + "relative_extrusion": + { + "label": "Relative Extrusion", + "description": "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output.", + "type": "bool", + "default_value": false, + "value": "machine_gcode_flavor==\"RepRap (RepRap)\"", + "enabled": true, + "settable_per_mesh": false, + "settable_per_extruder": false } } }, @@ -4943,6 +5075,48 @@ "default_value": false, "settable_per_mesh": true }, + "support_skip_some_zags": + { + "label": "Break Up Support In Chunks", + "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", + "type": "bool", + "default_value": false, + "enabled": "support_enable and (support_pattern == 'zigzag')", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_skip_zag_per_mm": + { + "label": "Support Chunk Size", + "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", + "type": "float", + "unit": "mm", + "default_value": 20, + "minimum_value": "0", + "minimum_value_warning": "support_line_distance", + "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": + { + "support_zag_skip_count": + { + "label": "Support Chunk Line Count", + "description": "Skip one in every N connection lines to make the support structure easier to break away.", + "type": "int", + "default_value": 5, + "value": "round(support_skip_zag_per_mm / support_line_distance)", + "minimum_value": "1", + "minimum_value_warning": "3", + "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } + }, "draft_shield_enabled": { "label": "Enable Draft Shield", @@ -5063,17 +5237,6 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "skin_outline_count": - { - "label": "Extra Skin Wall Count", - "description": "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material.", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "10", - "type": "int", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, "skin_alternate_rotation": { "label": "Alternate Skin Rotation", @@ -5084,6 +5247,30 @@ "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, + "cross_infill_pocket_size": + { + "label": "Cross 3D Pocket Size", + "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", + "unit": "mm", + "type": "float", + "default_value": 2.0, + "value": "infill_line_distance", + "minimum_value": "0", + "maximum_value_warning": "infill_line_distance * math.sqrt(2)", + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, + "cross_infill_apply_pockets_alternatingly": + { + "label": "Alternate Cross 3D Pockets", + "description": "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "spaghetti_infill_enabled": { "label": "Spaghetti Infill", @@ -5636,6 +5823,16 @@ "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, + "ironing_only_highest_layer": + { + "label": "Iron Only Highest Layer", + "description": "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish.", + "type": "bool", + "default_value": false, + "enabled": "ironing_enabled", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true + }, "ironing_pattern": { "label": "Ironing Pattern", @@ -5727,7 +5924,7 @@ "description": "The maximum instantaneous velocity change while performing ironing.", "unit": "mm/s", "type": "float", - "minimum_value": "0.1", + "minimum_value": "0", "maximum_value_warning": "50", "default_value": 20, "value": "jerk_topbottom", diff --git a/resources/definitions/folgertech_FT-5.def.json b/resources/definitions/folgertech_FT-5.def.json index a7709e9395..71c6987a1a 100644 --- a/resources/definitions/folgertech_FT-5.def.json +++ b/resources/definitions/folgertech_FT-5.def.json @@ -6,7 +6,6 @@ "visible": true, "author": "Jaime van Kessel & Paul Bussiere", "manufacturer": "Folger Tech", - "category": "Other", "file_formats": "text/x-gcode", "platform": "FT-5_build_plate.stl" }, diff --git a/resources/definitions/grr_neo.def.json b/resources/definitions/grr_neo.def.json index d09126f3e4..42c2e75319 100644 --- a/resources/definitions/grr_neo.def.json +++ b/resources/definitions/grr_neo.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Simon Cor", "manufacturer": "German RepRap", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", "platform": "grr_neo_platform.stl" diff --git a/resources/definitions/helloBEEprusa.def.json b/resources/definitions/helloBEEprusa.def.json old mode 100755 new mode 100644 index 0fee04f2e9..660e182187 --- a/resources/definitions/helloBEEprusa.def.json +++ b/resources/definitions/helloBEEprusa.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "BEEVERYCREATIVE", "manufacturer": "BEEVERYCREATIVE", - "category": "Other", "platform": "BEEVERYCREATIVE-helloBEEprusa.stl", "platform_offset": [-226, -75, -196], "file_formats": "text/x-gcode", diff --git a/resources/definitions/imade3d_jellybox.def.json b/resources/definitions/imade3d_jellybox.def.json index 86b34bfd5c..0c0f29c070 100644 --- a/resources/definitions/imade3d_jellybox.def.json +++ b/resources/definitions/imade3d_jellybox.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "IMADE3D", "manufacturer": "IMADE3D", - "category": "Other", "platform": "imade3d_jellybox_platform.stl", "platform_offset": [ 0, -0.3, 0], "file_formats": "text/x-gcode", diff --git a/resources/definitions/innovo_inventor.def.json b/resources/definitions/innovo_inventor.def.json index 4b169c5e31..5fc6c83ca2 100644 --- a/resources/definitions/innovo_inventor.def.json +++ b/resources/definitions/innovo_inventor.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Adam Rumjahn", "manufacturer": "Innovo", - "category": "Other", "file_formats": "text/x-gcode", "platform": "inventor_platform.stl", "platform_offset": [-180, -0.25, 160] diff --git a/resources/definitions/julia.def.json b/resources/definitions/julia.def.json index a0eda65bb7..fe10473596 100644 --- a/resources/definitions/julia.def.json +++ b/resources/definitions/julia.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Fracktal", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/kemiq_q2_beta.def.json b/resources/definitions/kemiq_q2_beta.def.json index 911fc584a9..d5bb8a895e 100644 --- a/resources/definitions/kemiq_q2_beta.def.json +++ b/resources/definitions/kemiq_q2_beta.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "KEMIQ", "manufacturer": "KEMIQ", - "category": "Other", "file_formats": "text/x-gcode", "platform": "kemiq_q2.stl", "has_machine_quality": true, diff --git a/resources/definitions/kemiq_q2_gama.def.json b/resources/definitions/kemiq_q2_gama.def.json index 4f803ecdb8..1cb1b45c21 100644 --- a/resources/definitions/kemiq_q2_gama.def.json +++ b/resources/definitions/kemiq_q2_gama.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "KEMIQ", "manufacturer": "KEMIQ", - "category": "Other", "file_formats": "text/x-gcode", "platform": "kemiq_q2.stl", "has_machine_quality": true, diff --git a/resources/definitions/kossel_mini.def.json b/resources/definitions/kossel_mini.def.json index e0e4665570..d915c148a3 100644 --- a/resources/definitions/kossel_mini.def.json +++ b/resources/definitions/kossel_mini.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Claudio Sampaio (Patola)", "manufacturer": "Other", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "kossel_platform.stl", diff --git a/resources/definitions/kossel_pro.def.json b/resources/definitions/kossel_pro.def.json index c9dbd63a50..58f1c7f94e 100644 --- a/resources/definitions/kossel_pro.def.json +++ b/resources/definitions/kossel_pro.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Chris Petersen", "manufacturer": "OpenBeam", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "kossel_pro_build_platform.stl", diff --git a/resources/definitions/kupido.def.json b/resources/definitions/kupido.def.json index 97be1a0152..8dec63f6ec 100644 --- a/resources/definitions/kupido.def.json +++ b/resources/definitions/kupido.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Kupido", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/m180.def.json b/resources/definitions/m180.def.json index 04859d87b9..1e8ac1767b 100644 --- a/resources/definitions/m180.def.json +++ b/resources/definitions/m180.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ruben Dulek", "manufacturer": "Malyan", - "category": "Other", "file_formats": "application/x3g" }, diff --git a/resources/definitions/makeR_pegasus.def.json b/resources/definitions/makeR_pegasus.def.json index 08f7702666..b164b2983f 100644 --- a/resources/definitions/makeR_pegasus.def.json +++ b/resources/definitions/makeR_pegasus.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "makeR", "manufacturer": "makeR", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "makeR_pegasus_platform.stl", diff --git a/resources/definitions/makeR_prusa_tairona_i3.def.json b/resources/definitions/makeR_prusa_tairona_i3.def.json index 612497d012..caccb2ebe6 100644 --- a/resources/definitions/makeR_prusa_tairona_i3.def.json +++ b/resources/definitions/makeR_prusa_tairona_i3.def.json @@ -7,11 +7,10 @@ "visible": true, "author": "makeR", "manufacturer": "makeR", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "makeR_prusa_tairona_i3_platform.stl", - "platform_offset": [-2,0,0] + "platform_offset": [-2, 0, 0] }, "overrides": { diff --git a/resources/definitions/makeit_pro_l.def.json b/resources/definitions/makeit_pro_l.def.json index 30043cd906..36f7354b64 100644 --- a/resources/definitions/makeit_pro_l.def.json +++ b/resources/definitions/makeit_pro_l.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "NA", "manufacturer": "NA", - "category": "Other", "file_formats": "text/x-gcode", "has_materials": false, "supported_actions": [ "MachineSettingsAction", "UpgradeFirmware" ], diff --git a/resources/definitions/makeit_pro_m.def.json b/resources/definitions/makeit_pro_m.def.json index abaec4c81f..f45e0b6635 100644 --- a/resources/definitions/makeit_pro_m.def.json +++ b/resources/definitions/makeit_pro_m.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "NA", "manufacturer": "NA", - "category": "Other", "file_formats": "text/x-gcode", "has_materials": false, "supported_actions": [ "MachineSettingsAction", "UpgradeFirmware" ], diff --git a/resources/definitions/maker_starter.def.json b/resources/definitions/maker_starter.def.json index e4c09c75f2..8358ba0064 100644 --- a/resources/definitions/maker_starter.def.json +++ b/resources/definitions/maker_starter.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "tvlgiao", "manufacturer": "3DMaker", - "category": "Other", "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj", "icon": "icon_ultimaker2.png", "platform": "makerstarter_platform.stl" diff --git a/resources/definitions/makerbotreplicator.def.json b/resources/definitions/makerbotreplicator.def.json index d762db67fc..7844976912 100644 --- a/resources/definitions/makerbotreplicator.def.json +++ b/resources/definitions/makerbotreplicator.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "MakerBot", - "category": "Other", "file_formats": "application/x3g", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/mankati_fullscale_xt_plus.def.json b/resources/definitions/mankati_fullscale_xt_plus.def.json index c841859962..6c3115b1dc 100644 --- a/resources/definitions/mankati_fullscale_xt_plus.def.json +++ b/resources/definitions/mankati_fullscale_xt_plus.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "RBC", "manufacturer": "Mankati", - "category": "Other", "file_formats": "text/x-gcode", "platform": "mankati_fullscale_xt_plus_platform.stl" }, diff --git a/resources/definitions/mendel90.def.json b/resources/definitions/mendel90.def.json index fee035cdd9..60f3307758 100644 --- a/resources/definitions/mendel90.def.json +++ b/resources/definitions/mendel90.def.json @@ -7,7 +7,6 @@ { "visible": true, "author": "Bo Herrmannsen", - "category": "Other", "manufacturer": "Nophead", "file_formats": "text/x-gcode", "platform": "mendel90_platform.stl", diff --git a/resources/definitions/ord.def.json b/resources/definitions/ord.def.json index bedd8c3121..d9909c4f1f 100644 --- a/resources/definitions/ord.def.json +++ b/resources/definitions/ord.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "ORD Solutions", - "category": "Other", "file_formats": "text/x-gcode", "machine_extruder_trains": { diff --git a/resources/definitions/peopoly_moai.def.json b/resources/definitions/peopoly_moai.def.json index 4bbb033fb7..6b0e0ae547 100644 --- a/resources/definitions/peopoly_moai.def.json +++ b/resources/definitions/peopoly_moai.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "fieldOfView", "manufacturer": "Peopoly", - "category": "Other", "file_formats": "text/x-gcode", "has_machine_quality": true, "has_materials": false diff --git a/resources/definitions/printrbot_play.def.json b/resources/definitions/printrbot_play.def.json index bce67364f8..452b5e131f 100644 --- a/resources/definitions/printrbot_play.def.json +++ b/resources/definitions/printrbot_play.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Chris Pearson", "manufacturer": "Printrbot", - "category": "Other", "file_formats": "text/x-gcode", "platform": "printrbot_play.stl" }, diff --git a/resources/definitions/printrbot_play_heated.def.json b/resources/definitions/printrbot_play_heated.def.json index 878a4f358f..02157a0913 100644 --- a/resources/definitions/printrbot_play_heated.def.json +++ b/resources/definitions/printrbot_play_heated.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Chris Pearson", "manufacturer": "Printrbot", - "category": "Other", "file_formats": "text/x-gcode", "platform": "" }, diff --git a/resources/definitions/printrbot_simple.def.json b/resources/definitions/printrbot_simple.def.json index b0ece54f8f..eba47c88ae 100644 --- a/resources/definitions/printrbot_simple.def.json +++ b/resources/definitions/printrbot_simple.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Calvindog717", "manufacturer": "PrintrBot", - "category": "Other", "platform": "printrbot_simple_metal_platform.stl", "platform_offset": [0, -3.45, 0], "file_formats": "text/x-gcode" diff --git a/resources/definitions/printrbot_simple_extended.def.json b/resources/definitions/printrbot_simple_extended.def.json index 4cf9cb477c..b08e0c7d5d 100644 --- a/resources/definitions/printrbot_simple_extended.def.json +++ b/resources/definitions/printrbot_simple_extended.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "samsector", "manufacturer": "PrintrBot", - "category": "Other", "platform": "printrbot_simple_metal_upgrade.stl", "platform_offset": [0, -0.3, 0], "file_formats": "text/x-gcode" diff --git a/resources/definitions/prusa_i3.def.json b/resources/definitions/prusa_i3.def.json index 307246dbc9..4f0f5b13d7 100644 --- a/resources/definitions/prusa_i3.def.json +++ b/resources/definitions/prusa_i3.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Quillford", "manufacturer": "Prusajr", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "prusai3_platform.stl" diff --git a/resources/definitions/prusa_i3_mk2.def.json b/resources/definitions/prusa_i3_mk2.def.json index 02af039867..c8c2cc1363 100644 --- a/resources/definitions/prusa_i3_mk2.def.json +++ b/resources/definitions/prusa_i3_mk2.def.json @@ -5,9 +5,8 @@ "inherits": "fdmprinter", "metadata": { "visible": true, - "author": "Apsu", + "author": "Apsu, Nounours2099", "manufacturer": "Prusa Research", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "prusai3_platform.stl", @@ -42,7 +41,7 @@ "machine_max_jerk_e": { "default_value": 2.5 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nM104 S{material_print_temperature} ; set extruder temp\nM140 S{material_bed_temperature} ; set bed temp\nM190 S{material_bed_temperature} ; wait for bed temp\nM109 S{material_print_temperature} ; wait for extruder temp\nG92 E0.0 ; reset extruder distance position\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E21.5 F1000.0 ; intro line\nG92 E0.0 ; reset extruder distance position" + "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nM104 S{material_print_temperature_layer_0} ; set extruder temp\nM140 S{material_bed_temperature_layer_0} ; set bed temp\nM190 S{material_bed_temperature_layer_0} ; wait for bed temp\nM109 S{material_print_temperature_layer_0} ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG92 E0.0 ; reset extruder distance position\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E21.5 F1000.0 ; intro line\nG92 E0.0 ; reset extruder distance position" }, "machine_end_gcode": { "default_value": "M104 S0 ; turn off extruder\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y210; home X axis and push Y forward\nM84 ; disable motors" diff --git a/resources/definitions/prusa_i3_xl.def.json b/resources/definitions/prusa_i3_xl.def.json index 9d792f8249..e49838c95f 100644 --- a/resources/definitions/prusa_i3_xl.def.json +++ b/resources/definitions/prusa_i3_xl.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "guigashm", "manufacturer": "Prusajr", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", "platform": "prusai3_xl_platform.stl" diff --git a/resources/definitions/punchtec_connect_xl.def.json b/resources/definitions/punchtec_connect_xl.def.json index ce4245a04f..16ba59dcb7 100644 --- a/resources/definitions/punchtec_connect_xl.def.json +++ b/resources/definitions/punchtec_connect_xl.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Punchtec", - "category": "Other", "file_formats": "text/x-gcode", "machine_extruder_trains": { diff --git a/resources/definitions/raise3D_N2_dual.def.json b/resources/definitions/raise3D_N2_dual.def.json new file mode 100644 index 0000000000..d3d8f0e651 --- /dev/null +++ b/resources/definitions/raise3D_N2_dual.def.json @@ -0,0 +1,95 @@ +{ + "id": "raise3D_N2_dual", + "version": 2, + "name": "Raise3D N2 Dual", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Raise3D", + "manufacturer": "Raise3D", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true, + "machine_extruder_trains": + { + "0": "raise3D_N2_dual_extruder_0", + "1": "raise3D_N2_dual_extruder_1" + } + }, + + "overrides": { + "machine_name": { "default_value": "Raise3D N2 Dual" }, + "machine_width": { + "default_value": 305 + }, + "machine_height": { + "default_value": 305 + }, + "machine_depth": { + "default_value": 305 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 6 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 4 + }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [ -75, 35 ], + [ -75, -18 ], + [ 18, 35 ], + [ 18, -18 ] + ] + }, + "machine_min_cool_heat_time_window": { + "default_value": 3600 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "retraction_amount": { + "default_value": 1.0 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "gantry_height": { + "default_value": 55 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G90\nG21\n; home all axes\nG28\nG92 X0 Y0 Z0\n; move heatbed into position\nG1 X20.0 Y20.0 Z1.0 F1000\n; zero extruders\nG92 E0 E1\nT0; right tool\n; set extruder steps per mm\nM92 E140\nT1; left tool\n; set extruder steps per mm\nM92 E140\nT0; left tool\nG92 E0 E1\n; purge nozzle\nG1 E25 F250\nT1; left tool\nG92 E0 E1\n; purge nozzle\nG1 E25 F250\n; zero extruders\nG92 E0 E1\n; move heatbed down a little more\nG1 Z5.0 F20\n; wait 600ms\nG4 600\n; move to tack down the strands\nG1 X20.0 Y30.0 Z0 F9000\n; wait 600ms\nG4 600\n;move up a bit\nG1 Z5.0 F9000\n; wait 300ms\nG4 300\n;fast move to center\nG1 X152.5 Y152.5 F9000\nT0\n;Raise3D Job Start\nM117 Printing…\nM1001\n" + }, + "machine_end_gcode": { + "default_value": "M107\nM1002\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117 Print Complete.\nG28 X0 Y0\nG91\nG1 Z10\nG90\nM84" + }, + "machine_extruder_count": { + "default_value": 2 + }, + "prime_tower_position_x": { + "default_value": 195 + }, + "prime_tower_position_y": { + "default_value": 149 + } + } +} diff --git a/resources/definitions/raise3D_N2_plus_dual.def.json b/resources/definitions/raise3D_N2_plus_dual.def.json new file mode 100644 index 0000000000..f49af40355 --- /dev/null +++ b/resources/definitions/raise3D_N2_plus_dual.def.json @@ -0,0 +1,95 @@ +{ + "id": "raise3D_N2_plus_dual", + "version": 2, + "name": "Raise3D N2 Plus Dual", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Raise3D", + "manufacturer": "Raise3D", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true, + "machine_extruder_trains": + { + "0": "raise3D_N2_plus_dual_extruder_0", + "1": "raise3D_N2_plus_dual_extruder_1" + } + }, + + "overrides": { + "machine_name": { "default_value": "Raise3D N2 Plus Dual" }, + "machine_width": { + "default_value": 305 + }, + "machine_height": { + "default_value": 610 + }, + "machine_depth": { + "default_value": 305 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 6 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 4 + }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [ -75, 35 ], + [ -75, -18 ], + [ 18, 35 ], + [ 18, -18 ] + ] + }, + "machine_min_cool_heat_time_window": { + "default_value": 3600 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "retraction_amount": { + "default_value": 1.0 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "gantry_height": { + "default_value": 55 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G90\nG21\n; home all axes\nG28\nG92 X0 Y0 Z0\n; move heatbed into position\nG1 X20.0 Y20.0 Z1.0 F1000\n; zero extruders\nG92 E0 E1\nT0; right tool\n; set extruder steps per mm\nM92 E140\nT1; left tool\n; set extruder steps per mm\nM92 E140\nT0; left tool\nG92 E0 E1\n; purge nozzle\nG1 E25 F250\nT1; left tool\nG92 E0 E1\n; purge nozzle\nG1 E25 F250\n; zero extruders\nG92 E0 E1\n; move heatbed down a little more\nG1 Z5.0 F20\n; wait 600ms\nG4 600\n; move to tack down the strands\nG1 X20.0 Y30.0 Z0 F9000\n; wait 600ms\nG4 600\n;move up a bit\nG1 Z5.0 F9000\n; wait 300ms\nG4 300\n;fast move to center\nG1 X152.5 Y152.5 F9000\nT0\n;Raise3D Job Start\nM117 Printing…\nM1001\n" + }, + "machine_end_gcode": { + "default_value": "M107\nM1002\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117 Print Complete.\nG28 X0 Y0\nG91\nG1 Z10\nG90\nM84" + }, + "machine_extruder_count": { + "default_value": 2 + }, + "prime_tower_position_x": { + "default_value": 195 + }, + "prime_tower_position_y": { + "default_value": 149 + } + } +} diff --git a/resources/definitions/raise3D_N2_plus_single.def.json b/resources/definitions/raise3D_N2_plus_single.def.json new file mode 100644 index 0000000000..5f10666528 --- /dev/null +++ b/resources/definitions/raise3D_N2_plus_single.def.json @@ -0,0 +1,87 @@ +{ + "id": "raise3D_N2_plus_single", + "version": 2, + "name": "Raise3D N2 Plus Single", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Raise3D", + "manufacturer": "Raise3D", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true + }, + + "overrides": { + "machine_name": { "default_value": "Raise3D N2 Plus Single" }, + "machine_width": { + "default_value": 305 + }, + "machine_height": { + "default_value": 610 + }, + "machine_depth": { + "default_value": 305 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 6 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 4 + }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [ -75, 35 ], + [ -75, -18 ], + [ 18, 35 ], + [ 18, -18 ] + ] + }, + "machine_min_cool_heat_time_window": { + "default_value": 3600 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "retraction_amount": { + "default_value": 1.0 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "gantry_height": { + "default_value": 55 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G90\nG21\n; home all axes\nG28\nG92 X0 Y0 Z0\n; move heatbed into position\nG1 X20.0 Y20.0 Z1.0 F1000\n; zero extruders\nG92 E0 E1\nT0; right tool\n; set extruder steps per mm\nM92 E140\n; purge nozzle\nG1 E25 F250\n; zero extruders\nG92 E0 E1\n; move heatbed down a little more\nG1 Z5.0 F20\n; wait 600ms\nG4 600\n; move to tack down the strands\nG1 X20.0 Y30.0 Z0 F9000\n; wait 600ms\nG4 600\n;move up a bit\nG1 Z5.0 F9000\n; wait 300ms\nG4 300\n;fast move to center\nG1 X152.5 Y152.5 F9000\nT0\n;Raise3D Job Start\nM117 Printing…\nM1001\n" + }, + "machine_end_gcode": { + "default_value": "M107\nM1002\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117 Print Complete.\nG28 X0 Y0\nG91\nG1 Z10\nG90\nM84" + }, + "prime_tower_position_x": { + "default_value": 195 + }, + "prime_tower_position_y": { + "default_value": 149 + } + } +} diff --git a/resources/definitions/raise3D_N2_single.def.json b/resources/definitions/raise3D_N2_single.def.json new file mode 100644 index 0000000000..225794130c --- /dev/null +++ b/resources/definitions/raise3D_N2_single.def.json @@ -0,0 +1,87 @@ +{ + "id": "raise3D_N2_single", + "version": 2, + "name": "Raise3D N2 Single", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Raise3D", + "manufacturer": "Raise3D", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true + }, + + "overrides": { + "machine_name": { "default_value": "Raise3D N2 Single" }, + "machine_width": { + "default_value": 305 + }, + "machine_height": { + "default_value": 305 + }, + "machine_depth": { + "default_value": 305 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 6 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 4 + }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [ -75, 35 ], + [ -75, -18 ], + [ 18, 35 ], + [ 18, -18 ] + ] + }, + "machine_min_cool_heat_time_window": { + "default_value": 3600 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "retraction_amount": { + "default_value": 1.0 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "gantry_height": { + "default_value": 55 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G90\nG21\n; home all axes\nG28\nG92 X0 Y0 Z0\n; move heatbed into position\nG1 X20.0 Y20.0 Z1.0 F1000\n; zero extruders\nG92 E0 E1\nT0; right tool\n; set extruder steps per mm\nM92 E140\n; purge nozzle\nG1 E25 F250\n; zero extruders\nG92 E0 E1\n; move heatbed down a little more\nG1 Z5.0 F20\n; wait 600ms\nG4 600\n; move to tack down the strands\nG1 X20.0 Y30.0 Z0 F9000\n; wait 600ms\nG4 600\n;move up a bit\nG1 Z5.0 F9000\n; wait 300ms\nG4 300\n;fast move to center\nG1 X152.5 Y152.5 F9000\nT0\n;Raise3D Job Start\nM117 Printing…\nM1001\n" + }, + "machine_end_gcode": { + "default_value": "M107\nM1002\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117 Print Complete.\nG28 X0 Y0\nG91\nG1 Z10\nG90\nM84" + }, + "prime_tower_position_x": { + "default_value": 195 + }, + "prime_tower_position_y": { + "default_value": 149 + } + } +} diff --git a/resources/definitions/renkforce_rf100.def.json b/resources/definitions/renkforce_rf100.def.json index caf9b11860..55e764800a 100644 --- a/resources/definitions/renkforce_rf100.def.json +++ b/resources/definitions/renkforce_rf100.def.json @@ -5,7 +5,6 @@ "inherits": "fdmprinter", "metadata": { "author": "Simon Peter (based on RF100.ini by Conrad Electronic SE)", - "category": "Other", "file_formats": "text/x-gcode", "manufacturer": "Renkforce", "visible": true diff --git a/resources/definitions/rigid3d.def.json b/resources/definitions/rigid3d.def.json index b167646f6e..75e435f880 100644 --- a/resources/definitions/rigid3d.def.json +++ b/resources/definitions/rigid3d.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Rigid3D", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/rigid3d_3rdgen.def.json b/resources/definitions/rigid3d_3rdgen.def.json index e7c73ed54d..3191817ecd 100644 --- a/resources/definitions/rigid3d_3rdgen.def.json +++ b/resources/definitions/rigid3d_3rdgen.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Rigid3D", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/rigid3d_hobby.def.json b/resources/definitions/rigid3d_hobby.def.json index 09ba77f63c..02e3cc514c 100644 --- a/resources/definitions/rigid3d_hobby.def.json +++ b/resources/definitions/rigid3d_hobby.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Rigid3D", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/rigid3d_zero.def.json b/resources/definitions/rigid3d_zero.def.json index d5f8c1ef6a..7e99112621 100644 --- a/resources/definitions/rigid3d_zero.def.json +++ b/resources/definitions/rigid3d_zero.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Rigid3D", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/rigid3d_zero2.def.json b/resources/definitions/rigid3d_zero2.def.json index ddb98b0eb2..e2a77db895 100644 --- a/resources/definitions/rigid3d_zero2.def.json +++ b/resources/definitions/rigid3d_zero2.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Rigid3D", "manufacturer": "Rigid3D", - "category": "Other", "has_materials": false, "file_formats": "text/x-gcode", "platform": "rigid3d_zero2_platform.stl", diff --git a/resources/definitions/rigidbot.def.json b/resources/definitions/rigidbot.def.json index 1f63af8758..d183554947 100644 --- a/resources/definitions/rigidbot.def.json +++ b/resources/definitions/rigidbot.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "RBC", "manufacturer": "RigidBot", - "category": "Other", "file_formats": "text/x-gcode", "platform": "rigidbot_platform.stl" }, diff --git a/resources/definitions/rigidbot_big.def.json b/resources/definitions/rigidbot_big.def.json index 8ba52303dd..33c4fd3d27 100644 --- a/resources/definitions/rigidbot_big.def.json +++ b/resources/definitions/rigidbot_big.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "RBC", "manufacturer": "RigidBot", - "category": "Other", "file_formats": "text/x-gcode", "platform": "rigidbotbig_platform.stl" }, diff --git a/resources/definitions/robo_3d_r1.def.json b/resources/definitions/robo_3d_r1.def.json index b137b2054b..88b3fba01f 100644 --- a/resources/definitions/robo_3d_r1.def.json +++ b/resources/definitions/robo_3d_r1.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Robo 3D", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/definitions/tam.def.json b/resources/definitions/tam.def.json index 87dba5f027..93ebe43ea6 100644 --- a/resources/definitions/tam.def.json +++ b/resources/definitions/tam.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "typeamachines", "manufacturer": "typeamachines", - "category": "Other", "file_formats": "text/x-gcode", "platform": "tam_series1.stl", "platform_offset": [-580.0, -6.23, 253.5], diff --git a/resources/definitions/tevo_tarantula.def.json b/resources/definitions/tevo_tarantula.def.json new file mode 100644 index 0000000000..29bfae77a4 --- /dev/null +++ b/resources/definitions/tevo_tarantula.def.json @@ -0,0 +1,73 @@ +{ + "id": "tevo_tarantula", + "version": 2, + "name": "Tevo Tarantula", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "TheAssassin", + "manufacturer": "Tevo", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2", + "platform": "prusai3_platform.stl" + }, + + "overrides": { + "machine_name": { + "default_value": "Tevo Tarantula" + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_width": { + "default_value": 200 + }, + "machine_height": { + "default_value": 200 + }, + "machine_depth": { + "default_value": 200 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_head_polygon": { + "default_value": [ + [-75, -18], + [-75, 35], + [18, 35], + [18, -18] + ] + }, + "gantry_height": { + "default_value": 55 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_acceleration": { + "default_value": 500 + }, + "machine_max_jerk_xy": { + "default_value": 4.0 + }, + "machine_max_jerk_z": { + "default_value": 0.2 + }, + "machine_max_jerk_e": { + "default_value": 2.5 + }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\nG1 Y200 F3600 ;move baseplate to front for easier access to printed object" + } + } +} diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index adf0ec8054..797a05e324 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -6,6 +6,7 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", + "category": "Ultimaker", "visible": false }, "overrides": { @@ -30,6 +31,11 @@ { "minimum_value": "0", "maximum_value": "machine_width" + }, + "relative_extrusion": + { + "value": false, + "enabled": false } } } diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json index f1db386e0d..6974e61938 100644 --- a/resources/definitions/ultimaker2.def.json +++ b/resources/definitions/ultimaker2.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", @@ -15,6 +14,7 @@ "platform_texture": "Ultimaker2backplate.png", "platform_offset": [9, 0, 0], "has_materials": false, + "has_machine_quality": true, "first_start_actions": ["UM2UpgradeSelection"], "supported_actions":["UM2UpgradeSelection", "UpgradeFirmware"] }, @@ -90,9 +90,6 @@ "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_feedrate_e": { - "default_value": 45 - }, "machine_acceleration": { "default_value": 3000 }, diff --git a/resources/definitions/ultimaker2_extended.def.json b/resources/definitions/ultimaker2_extended.def.json index 687369d559..16f9e6f25e 100644 --- a/resources/definitions/ultimaker2_extended.def.json +++ b/resources/definitions/ultimaker2_extended.def.json @@ -6,7 +6,7 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", + "quality_definition": "ultimaker2", "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", diff --git a/resources/definitions/ultimaker2_extended_plus.def.json b/resources/definitions/ultimaker2_extended_plus.def.json index 15256064f3..525aaf5b72 100644 --- a/resources/definitions/ultimaker2_extended_plus.def.json +++ b/resources/definitions/ultimaker2_extended_plus.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "quality_definition": "ultimaker2_plus", "weight": 2, "file_formats": "text/x-gcode", diff --git a/resources/definitions/ultimaker2_go.def.json b/resources/definitions/ultimaker2_go.def.json index 0803a91571..9fb94022ce 100644 --- a/resources/definitions/ultimaker2_go.def.json +++ b/resources/definitions/ultimaker2_go.def.json @@ -6,7 +6,7 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", + "quality_definition": "ultimaker2", "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", diff --git a/resources/definitions/ultimaker2_plus.def.json b/resources/definitions/ultimaker2_plus.def.json index ef5420e77a..7214e6b7fe 100644 --- a/resources/definitions/ultimaker2_plus.def.json +++ b/resources/definitions/ultimaker2_plus.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "weight": 1, "file_formats": "text/x-gcode", "platform": "ultimaker2_platform.obj", diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index ba1caeddb5..05e39e365c 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "visible": true, "file_formats": "text/x-gcode", "platform": "ultimaker3_platform.obj", @@ -68,7 +67,7 @@ "machine_extruder_count": { "default_value": 2 }, "extruder_prime_pos_abs": { "default_value": true }, "machine_start_gcode": { "default_value": "" }, - "machine_end_gcode": { "default_value": "" }, + "machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement" }, "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, @@ -151,7 +150,7 @@ "top_bottom_thickness": { "value": "1" }, "travel_avoid_distance": { "value": "3" }, "wall_0_inset": { "value": "0" }, - "wall_line_width_x": { "value": "round(line_width * 0.3 / 0.35, 2)" }, + "wall_line_width_x": { "value": "round(wall_line_width * 0.3 / 0.35, 2)" }, "wall_thickness": { "value": "1" } } } diff --git a/resources/definitions/ultimaker3_extended.def.json b/resources/definitions/ultimaker3_extended.def.json index 7cf90a1a90..e47ccf4ba3 100644 --- a/resources/definitions/ultimaker3_extended.def.json +++ b/resources/definitions/ultimaker3_extended.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "quality_definition": "ultimaker3", "visible": true, "file_formats": "text/x-gcode", diff --git a/resources/definitions/ultimaker_original.def.json b/resources/definitions/ultimaker_original.def.json index 82f309cc13..ef2f5fae5c 100644 --- a/resources/definitions/ultimaker_original.def.json +++ b/resources/definitions/ultimaker_original.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "weight": 4, "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", diff --git a/resources/definitions/ultimaker_original_dual.def.json b/resources/definitions/ultimaker_original_dual.def.json index 38dd2f0a04..8745434360 100644 --- a/resources/definitions/ultimaker_original_dual.def.json +++ b/resources/definitions/ultimaker_original_dual.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "weight": 4, "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", diff --git a/resources/definitions/ultimaker_original_plus.def.json b/resources/definitions/ultimaker_original_plus.def.json index 013e8bd717..8e401d550c 100644 --- a/resources/definitions/ultimaker_original_plus.def.json +++ b/resources/definitions/ultimaker_original_plus.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", - "category": "Ultimaker", "weight": 4, "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", diff --git a/resources/definitions/uniqbot_one.def.json b/resources/definitions/uniqbot_one.def.json index 7ec5f162ea..410f7e57a6 100644 --- a/resources/definitions/uniqbot_one.def.json +++ b/resources/definitions/uniqbot_one.def.json @@ -6,7 +6,6 @@ "metadata": { "author": "Unimatech", "manufacturer": "Unimatech", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png" }, diff --git a/resources/definitions/vertex_delta_k8800.def.json b/resources/definitions/vertex_delta_k8800.def.json new file mode 100644 index 0000000000..0a89b61b36 --- /dev/null +++ b/resources/definitions/vertex_delta_k8800.def.json @@ -0,0 +1,65 @@ +{ + "id": "K8800", + "name": "Vertex Delta K8800", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "manufacturer": "Velleman nv", + "file_formats": "text/x-gcode", + "visible": true, + "author": "Velleman" + }, + "overrides": { + "material_diameter": { + "default_value": 1.75 + }, + "machine_width": { + "default_value": 200 + }, + "machine_height": { + "default_value": 225 + }, + "machine_depth": { + "default_value": 200 + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_shape": { + "default_value": "elliptic" + }, + "machine_nozzle_size": { + "default_value": 0.35 + }, + "machine_head_shape_min_x": { + "default_value": 0 + }, + "machine_head_shape_min_y": { + "default_value": 0 + }, + "machine_head_shape_max_x": { + "default_value": 0 + }, + "machine_head_shape_max_y": { + "default_value": 0 + }, + "gantry_height": { + "default_value": 0 + }, + "machine_nozzle_offset_x_1": { + "default_value": 0 + }, + "machine_nozzle_offset_y_1": { + "default_value": 0 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "; Vertex Delta Start Gcode\nM0 Is my nozzle clean?\nM400\nG28 ; Home extruder\nM106 S128 ; Start fan\nM104 T0 R130 ; Set cold nozzle\nM109 T0 R130 ; Wait for cold nozzle\nM117 Leveling bed...\nG29 ; Level Bed\nG1 X0 Y100 Z1 F2000\nG92 Z0.9 ; Set Z position (SET Z OFFSET HERE -> 1 - OFFSET)\nM107 ; Stop fan\nG90 ; Absolute positioning\nM82 ; Extruder in absolute mode\nM104 T0 S{material_print_temperature}\nG92 E0 ; Reset extruder position\nM109 T0 S{material_print_temperature}\nM117 Priming nozzle...\nM83\nG1 E20 F100 ; purge/prime nozzle\nM82\nG92 E0 ; Reset extruder position\nG4 S3 ; Wait 3 seconds\nG1 Z5 F2000\nM117 Vertex Delta printing" + }, + "machine_end_gcode": { + "default_value": "; Vertex Delta end code\nM107 ; Turn off fan\nG91 ; Relative positioning\nT0\nG1 E-1 F1500; Reduce filament pressure\nM104 T0 S0\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM300 S4000 P500\nM300 S3000 P500\nM300 S2000 P800\nG28\nM84 ; Turn steppers off" + } + } +} \ No newline at end of file diff --git a/resources/definitions/vertex_k8400.def.json b/resources/definitions/vertex_k8400.def.json index ac7ccd5e93..a23e1fc893 100644 --- a/resources/definitions/vertex_k8400.def.json +++ b/resources/definitions/vertex_k8400.def.json @@ -6,7 +6,6 @@ "metadata": { "visible": true, "manufacturer": "Velleman", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "Vertex_build_panel.stl", diff --git a/resources/definitions/vertex_k8400_dual.def.json b/resources/definitions/vertex_k8400_dual.def.json index f6b3d6cfbb..9e24bab5d3 100644 --- a/resources/definitions/vertex_k8400_dual.def.json +++ b/resources/definitions/vertex_k8400_dual.def.json @@ -6,7 +6,6 @@ "metadata": { "visible": true, "manufacturer": "Velleman", - "category": "Other", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", "platform": "Vertex_build_panel.stl", diff --git a/resources/definitions/zone3d_printer.def.json b/resources/definitions/zone3d_printer.def.json index 1663ffdf2b..a1ed56c7ef 100644 --- a/resources/definitions/zone3d_printer.def.json +++ b/resources/definitions/zone3d_printer.def.json @@ -7,7 +7,6 @@ "visible": true, "author": "Ultimaker", "manufacturer": "Unknown", - "category": "Other", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0] }, diff --git a/resources/extruders/builder_premium_large_front.def.json b/resources/extruders/builder_premium_large_front.def.json new file mode 100644 index 0000000000..159682dc1c --- /dev/null +++ b/resources/extruders/builder_premium_large_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_large_rear.def.json b/resources/extruders/builder_premium_large_rear.def.json new file mode 100644 index 0000000000..5e9cc062ae --- /dev/null +++ b/resources/extruders/builder_premium_large_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_front.def.json b/resources/extruders/builder_premium_medium_front.def.json new file mode 100644 index 0000000000..9a330b4f4b --- /dev/null +++ b/resources/extruders/builder_premium_medium_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_rear.def.json b/resources/extruders/builder_premium_medium_rear.def.json new file mode 100644 index 0000000000..49d4734306 --- /dev/null +++ b/resources/extruders/builder_premium_medium_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_front.def.json b/resources/extruders/builder_premium_small_front.def.json new file mode 100644 index 0000000000..2e6293d153 --- /dev/null +++ b/resources/extruders/builder_premium_small_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_rear.def.json b/resources/extruders/builder_premium_small_rear.def.json new file mode 100644 index 0000000000..d1606cdd79 --- /dev/null +++ b/resources/extruders/builder_premium_small_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/hBp_extruder_left.def.json b/resources/extruders/hBp_extruder_left.def.json old mode 100755 new mode 100644 diff --git a/resources/extruders/hBp_extruder_right.def.json b/resources/extruders/hBp_extruder_right.def.json old mode 100755 new mode 100644 diff --git a/resources/extruders/raise3D_N2_dual_extruder_0.def.json b/resources/extruders/raise3D_N2_dual_extruder_0.def.json new file mode 100644 index 0000000000..330d016c55 --- /dev/null +++ b/resources/extruders/raise3D_N2_dual_extruder_0.def.json @@ -0,0 +1,26 @@ +{ + "id": "raise3D_N2_dual_extruder_0", + "version": 2, + "name": "Left Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "raise3D_N2_dual", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0 }, + "machine_nozzle_offset_y": { "default_value": 0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } + } +} diff --git a/resources/extruders/raise3D_N2_dual_extruder_1.def.json b/resources/extruders/raise3D_N2_dual_extruder_1.def.json new file mode 100644 index 0000000000..f79033e496 --- /dev/null +++ b/resources/extruders/raise3D_N2_dual_extruder_1.def.json @@ -0,0 +1,28 @@ +{ + "id": "raise3D_N2_dual_extruder_1", + "version": 2, + "name": "Right Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "raise3D_N2_dual", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 24.8 }, + "machine_nozzle_offset_y": { "default_value": 0.6 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } + } +} + + diff --git a/resources/extruders/raise3D_N2_plus_dual_extruder_0.def.json b/resources/extruders/raise3D_N2_plus_dual_extruder_0.def.json new file mode 100644 index 0000000000..f105dcbaf9 --- /dev/null +++ b/resources/extruders/raise3D_N2_plus_dual_extruder_0.def.json @@ -0,0 +1,26 @@ +{ + "id": "raise3D_N2_plus_dual_extruder_0", + "version": 2, + "name": "Left Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "raise3D_N2_plus_dual", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0 }, + "machine_nozzle_offset_y": { "default_value": 0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } + } +} diff --git a/resources/extruders/raise3D_N2_plus_dual_extruder_1.def.json b/resources/extruders/raise3D_N2_plus_dual_extruder_1.def.json new file mode 100644 index 0000000000..b0fa1b51d0 --- /dev/null +++ b/resources/extruders/raise3D_N2_plus_dual_extruder_1.def.json @@ -0,0 +1,28 @@ +{ + "id": "raise3D_N2_plus_dual_extruder_1", + "version": 2, + "name": "Right Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "raise3D_N2_plus_dual", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 24.8 }, + "machine_nozzle_offset_y": { "default_value": 0.6 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } + } +} + + diff --git a/resources/extruders/ultimaker3_extended_extruder_left.def.json b/resources/extruders/ultimaker3_extended_extruder_left.def.json index 2fcf1d015a..2d81424bc6 100644 --- a/resources/extruders/ultimaker3_extended_extruder_left.def.json +++ b/resources/extruders/ultimaker3_extended_extruder_left.def.json @@ -5,7 +5,8 @@ "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3_extended", - "position": "0" + "position": "0", + "quality_definition": "ultimaker3_extruder_left" }, "overrides": { diff --git a/resources/extruders/ultimaker3_extended_extruder_right.def.json b/resources/extruders/ultimaker3_extended_extruder_right.def.json index b60cc82dd7..7cdd5876c1 100644 --- a/resources/extruders/ultimaker3_extended_extruder_right.def.json +++ b/resources/extruders/ultimaker3_extended_extruder_right.def.json @@ -5,7 +5,8 @@ "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3_extended", - "position": "1" + "position": "1", + "quality_definition": "ultimaker3_extruder_right" }, "overrides": { diff --git a/resources/extruders/ultimaker3_extruder_left.def.json b/resources/extruders/ultimaker3_extruder_left.def.json index 6f07718b63..9f5ed34692 100644 --- a/resources/extruders/ultimaker3_extruder_left.def.json +++ b/resources/extruders/ultimaker3_extruder_left.def.json @@ -5,7 +5,8 @@ "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3", - "position": "0" + "position": "0", + "quality_definition": "ultimaker3_extruder_left" }, "overrides": { diff --git a/resources/extruders/ultimaker3_extruder_right.def.json b/resources/extruders/ultimaker3_extruder_right.def.json index bc51b0da4b..7298a552b7 100644 --- a/resources/extruders/ultimaker3_extruder_right.def.json +++ b/resources/extruders/ultimaker3_extruder_right.def.json @@ -5,7 +5,8 @@ "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3", - "position": "1" + "position": "1", + "quality_definition": "ultimaker3_extruder_right" }, "overrides": { diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 9b8d7f9639..99ccd7a459 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -3,30 +3,104 @@ # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: TEAM\n" -"Language: LANGUAGE\n" -"Lang-Code: xx\n" -"Country-Code: XX\n" +"Language: xx_XX\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@title:window" +msgid "User Agreement" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I understand and agree" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I don't agree" +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" +msgid "X-Ray view" msgstr "" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 @@ -39,39 +113,68 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" +msgid "Print with Doodle3D WiFi-Box" msgstr "" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." +msgid "Open the Doodle3D Connect web interface" msgstr "" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 @@ -114,18 +217,38 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "" "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "" "Unable to start a new job because the printer does not support usb printing." msgstr "" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -137,9 +260,9 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "" -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" msgstr "" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 @@ -155,47 +278,79 @@ msgstr "" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." msgstr "" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -206,100 +361,137 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "" "Access to the printer requested. Please approve the request on the printer" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "" "Connected over the network. Please approve the access request on the printer." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "" "The connection with the printer was lost. Check your printer to see if it is " "connected." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "" @@ -307,37 +499,48 @@ msgid "" "%s." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "" @@ -345,12 +548,14 @@ msgid "" "performed on the printer." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "" "There is a mismatch between the configuration or calibration of the printer " @@ -358,68 +563,68 @@ msgid "" "that are inserted in your printer." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "" "The PrintCores and/or materials on your printer differ from those within " @@ -428,11 +633,108 @@ msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "" +"This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "" +"This printer is the host for a group of {count} connected Ultimaker 3 " +"printers." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "" +"{printer_name} has finished printing '{job_name}'. Please collect the print " +"and confirm clearing the build plate." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "" +"{printer_name} is reserved to print '{job_name}'. Please change the " +"printer's configuration to match the job, for it to start printing." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "" +"Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "" +"Unable to send new print job: this 3D printer is not (yet) set up to host a " +"group of connected Ultimaker 3 printers." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "" +"@info Don't translate {machine_name}, since it gets replaced by a printer " +"name!" +msgid "" +"To ensure that your {machine_name} is equipped with the latest features it " +"is recommended to update the firmware regularly. This can be done on the " +"{machine_name} (when connected to the network) or via USB." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "" "Errors appeared while opening your SolidWorks file! Please " @@ -454,19 +756,12 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "" -"Please keep in mind, that you have to reopen your SolidWorks file manually! " -"Reloading the model won't work!" -msgstr "" - #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" msgstr "" @@ -478,7 +773,12 @@ msgid "" "preferences." msgstr "" -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "" @@ -496,7 +796,7 @@ msgstr "" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" +msgid "Layer view" msgstr "" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 @@ -504,6 +804,11 @@ msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -529,15 +834,22 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" msgid "" -"The selected material is incompatible with the selected machine or " -"configuration." +"Unable to slice with the current material as it is incompatible with the " +"selected machine or configuration." msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "" @@ -545,13 +857,13 @@ msgid "" "errors: {0}" msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "" "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "" "Nothing to slice because none of the models fit the build volume. Please " @@ -564,6 +876,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -575,13 +892,13 @@ msgid "Configure Per Model Settings" msgstr "" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "" @@ -592,24 +909,36 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" msgstr "" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" +msgid "Solid view" msgstr "" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 @@ -622,7 +951,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "" "Make sure the g-code is suitable for your printer and printer configuration " @@ -646,7 +981,7 @@ msgid "Cura Project 3MF file" msgstr "" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "" @@ -666,18 +1001,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "" @@ -687,37 +1077,60 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "" "The file {0} already exists. Are you sure you want to " "overwrite it?" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "" +"The selected material is incompatible with the selected machine or " +"configuration." +msgstr "" + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "" @@ -737,77 +1150,93 @@ msgstr "" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "" "Failed to export profile to {0}: {1}" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "" "Failed to export profile to {0}: Writer plugin reported " "failure." msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "" "Failed to import profile from {0}: {1}" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "" -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "" "The build volume height has been reduced due to the value of the \"Print " "Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "" +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -828,22 +1257,22 @@ msgctxt "@action:button" msgid "Open Web Page" msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "" "@info 'width', 'depth' and 'height' are variable names that must NOT be " @@ -851,13 +1280,13 @@ msgctxt "" msgid "%(width).1f x %(depth).1f x %(height).1f mm" msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -887,12 +1316,12 @@ msgstr "" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "" @@ -997,115 +1426,74 @@ msgid "" "gantry when printing \"One at a Time\"." msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "" "The nominal diameter of filament supported by the printer. The exact " "diameter will be overridden by the material and/or the profile." msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1114,9 +1502,10 @@ msgstr "" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1170,11 +1559,13 @@ msgid "Unknown error code: %1" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your " @@ -1187,17 +1578,20 @@ msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1206,12 +1600,14 @@ msgid "Remove" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "" "If your printer is not listed, read the network printing " @@ -1219,76 +1615,209 @@ msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "" +"This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "" +"This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" @@ -1377,67 +1906,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "" @@ -1516,23 +2040,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "" @@ -1669,24 +2193,42 @@ msgctxt "@title:window" msgid "Find & Update plugins" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" msgid "Upgrade" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" msgid "Installed" msgstr "" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 msgctxt "@action:button" -msgid "Download" +msgid "Accept" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" msgstr "" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 @@ -1876,71 +2418,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "" @@ -1973,19 +2515,19 @@ msgid "Customized" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "" @@ -2126,7 +2668,7 @@ msgid "Unit" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "" @@ -2141,197 +2683,197 @@ msgctxt "@label" msgid "Language:" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "" "You will need to restart the application for these changes to have effect." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "" "Highlight unsupported areas of the model in red. Without support these areas " "will not print properly." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "" "Moves the camera so the model is in the center of the view when a model is " "selected" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "" "Should models on the platform be moved so that they no longer intersect?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "" "An model may appear extremely small if its unit is for example in meters " "rather than millimeters. Should these models be scaled up?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "" "Should a prefix based on the printer name be added to the print job name " "automatically?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "" "When you have made changes to a profile and switched to a different one, a " @@ -2339,27 +2881,27 @@ msgid "" "not, or you can choose a default behaviour and never show that dialog again." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " @@ -2367,13 +2909,13 @@ msgid "" "stored." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "" @@ -2423,7 +2965,7 @@ msgid "Waiting for a printjob" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "" @@ -2523,7 +3065,7 @@ msgid "Export Profile" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "" @@ -2557,13 +3099,13 @@ msgid "Import Material" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "" "Could not import material %1: %2" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "" @@ -2574,18 +3116,18 @@ msgid "Export Material" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "" "Failed to export material to %1: %2" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "" @@ -2600,71 +3142,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2772,32 +3249,46 @@ msgctxt "@label" msgid "SVG icons" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the " +"profile.\n" +"\n" +"Click to open the profile manager." +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "" @@ -2850,26 +3341,51 @@ msgid "" "Click to restore the calculated value." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "" "Recommended Print Setup

Print with the recommended settings " "for the selected printer, material and quality." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "" "Custom Print Setup

Print with finegrained control over every " @@ -2921,63 +3437,71 @@ msgid "No printer connected" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" +msgid "Extruder" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "" +"The target temperature of the hotend. The hotend will heat up or cool down " +"towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "" "The target temperature of the heated bed. The bed will heat up or cool down " "towards this temperature. If this is 0, the bed heating is turned off." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "" "Heat the bed in advance before printing. You can continue adjusting your " @@ -2985,22 +3509,22 @@ msgid "" "when you're ready to print." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "" @@ -3191,53 +3715,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "" @@ -3332,44 +3856,39 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "" "Are you sure you want to start a new project? This will clear the build " "plate and any unsaved settings." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "" "We have found one or more G-Code files within the files you have selected. " @@ -3397,90 +3916,75 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" +msgid "Monitor" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "" "Gradual infill will gradually increase the amount of infill towards the top." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "" "Generate structures to support parts of the model which have overhangs. " "Without these structures, such parts would collapse during printing." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "" "Select which extruder to use for support. This will build up supporting " @@ -3488,19 +3992,19 @@ msgid "" "mid air." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "" "Enable printing a brim or raft. This will add a flat area around or under " "your object which is easy to cut off afterwards." msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "" "Need help improving your prints?
Read the
Ultimaker " @@ -3541,36 +4045,23 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the " -"profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" - #: MachineSettingsAction/plugin.json msgctxt "description" -msgid "" -"Provides a way to change machine settings (such as build volume, nozzle " -"size, etc)" +msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" msgstr "" #: MachineSettingsAction/plugin.json @@ -3618,6 +4109,16 @@ msgctxt "name" msgid "God Mode" msgstr "" +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "" + #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." @@ -3640,8 +4141,7 @@ msgstr "" #: USBPrinting/plugin.json msgctxt "description" -msgid "" -"Accepts G-Code and sends them to a printer. Plugin can also update firmware." +msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." msgstr "" #: USBPrinting/plugin.json @@ -3649,16 +4149,6 @@ msgctxt "name" msgid "USB printing" msgstr "" -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" - #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." @@ -3679,11 +4169,24 @@ msgctxt "name" msgid "UM3 Network Connection" msgstr "" +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "" + #: CuraSolidWorksPlugin/plugin.json msgctxt "description" -msgid "" -"Gives you the possibility to open certain files via SolidWorks itself. These " -"are then converted and loaded into Cura" +msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" msgstr "" #: CuraSolidWorksPlugin/plugin.json @@ -3771,6 +4274,16 @@ msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" msgstr "" +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "" + #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." @@ -3893,9 +4406,7 @@ msgstr "" #: UltimakerMachineActions/plugin.json msgctxt "description" -msgid "" -"Provides machine actions for Ultimaker machines (such as bed leveling " -"wizard, selecting upgrades, etc)" +msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" msgstr "" #: UltimakerMachineActions/plugin.json @@ -3912,3 +4423,4 @@ msgstr "" msgctxt "name" msgid "Cura Profile Reader" msgstr "" + diff --git a/resources/i18n/de/cura.po b/resources/i18n/de_DE/cura.po similarity index 73% rename from resources/i18n/de/cura.po rename to resources/i18n/de_DE/cura.po index 05cfa5008f..179994a4a6 100644 --- a/resources/i18n/de/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: German\n" -"Language: German\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: de\n" -"Country-Code: DE\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Drucken wurde abgebrochen" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Blockiert" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Handlung erforderlich" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Druck startet nicht" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Dieser Drucker ist nicht eingerichtet um eine Gruppe von Ultimaker 3 Druckern anzusteuern." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Endet um: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Dieser Drucker steuert eine Gruppe von %1 Ultimaker 3 Druckern an." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "Drucker '{printer_name}' hat '{job_name}' vollständig gedrückt." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Druck vollendet" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugins" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Plugins durchsuchen..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Installierte plugins..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Geräteeinstellungen" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Röntgen" +msgid "X-Ray view" +msgstr "Röntgen-Ansicht" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "G-Code-Datei" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Akzeptiert den G-Code und sendet diesen über WiFi an eine Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D-Drucken" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Mit Doodle3D WLAN-Box drucken" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Mit Doodle3D WLAN-Box drucken" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Zu Doodle3D Connect verbinden" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Abbrechen" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Daten werden zu Doodle3D Connect gesendet" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Daten können nicht zu Doodle3D Connect gesendet werden. Ist noch ein weiterer Auftrag in Bearbeitung?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Daten werden auf Doodle3D Connect gespeichert" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Datei wurde zu Doodle3D Connect gesendet" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Connect wird geöffnet ..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Drucken mit" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Scan-Geräte aktivieren..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Doodle3D Connect Web-Schnittstelle öffnen" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -86,7 +173,7 @@ msgstr "Einstellungen Glätten aktiv" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 msgctxt "@info:status" msgid "Profile has been flattened & activated." -msgstr "Das Profil wurde geglättet und aktiviert" +msgstr "Das Profil wurde geglättet und aktiviert." #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Es kann kein neuer Auftrag gestartet werden, da der Drucker beschäftigt oder nicht angeschlossen ist." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Druckdetails" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Der Drucker unterstützt keinen USB-Druck, da er die UltiGCode-Variante verwendet." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB-Drucken" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Es kann kein neuer Auftrag gestartet werden, da der Drucker keinen Druck über USB unterstützt." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Warnhinweis" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Die für den Drucker unter %s erforderliche Firmware wurde nicht gefunden." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3D-Datei" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Drucker-Firmware" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Auf Wechseldatenträger speichern {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Wird auf Wechseldatenträger gespeichert {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Wird gespeichert" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "Konnte nicht als {0} gespeichert werden: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Auf Wechseldatenträger {0} gespeichert als {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Bei dem Versuch, auf {device} zu schreiben, wurde ein Dateiname nicht gefunden." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Auswerfen" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Wechseldatenträger auswerfen {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Konnte nicht auf dem Wechseldatenträger gespeichert werden {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Fehler" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Auf Wechseldatenträger {0} gespeichert als {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Datei wurde gespeichert" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Auswerfen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Wechseldatenträger auswerfen {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Ausgeworfen {0}. Sie können den Datenträger jetzt sicher entfernen." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Hardware sicher entfernen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Wechseldatenträger" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Drucken über Netzwerk" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Drücken über Netzwerk" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Zugriff auf Drucker erforderlich. Bestätigen Sie den Zugriff auf den Drucker" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Verbindungsstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Verbindungsstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Erneut versuchen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Zugriffanforderung erneut senden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Zugriff auf den Drucker genehmigt" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Kein Zugriff auf das Drucken mit diesem Drucker. Druckauftrag kann nicht gesendet werden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Zugriff anfordern" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Zugriffsanforderung für den Drucker senden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Über Netzwerk verbunden. Geben Sie die Zugriffsanforderung für den Drucker frei." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Über Netzwerk verbunden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Über Netzwerk verbunden. Kein Zugriff auf die Druckerverwaltung." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Zugriffsanforderung auf den Drucker wurde abgelehnt." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Zugriffsanforderungen aufgrund von Zeitüberschreitung fehlgeschlagen." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Die Verbindung zum Netzwerk ist verlorengegangen." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Die Verbindung zum Drucker ist verlorengegangen. Überprüfen Sie Ihren Drucker, um festzustellen, ob er verbunden ist." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Es kann kein neuer Druckauftrag gestartet werden, da der Drucker beschäftigt ist. Der aktuelle Druckerstatus lautet %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Druckerstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Es kann kein neuer Druckauftrag gestartet werden. Kein PrintCore in Steckplatz {0} geladen." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Es kann kein neuer Druckauftrag gestartet werden. Kein Material in Steckplatz {0} geladen." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Material für Spule {0} unzureichend." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "Abweichender PrintCore (Cura: {0}, Drucker: {1}) für Extruder {2} gewählt" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Abweichendes Material (Cura: {0}, Drucker: {1}) für Extruder {2} gewählt" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "PrintCore {0} ist nicht korrekt kalibriert. XY-Kalibrierung muss auf dem Drucker ausgeführt werden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Möchten Sie wirklich mit der gewählten Konfiguration drucken?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Anforderungen zwischen der Druckerkonfiguration oder -kalibrierung und Cura stimmen nicht überein. Für optimale Ergebnisse schneiden Sie stets für die PrintCores und Materialien, die in Ihren Drucker eingelegt wurden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Konfiguration nicht übereinstimmend" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Daten werden zum Drucker gesendet" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Abbrechen" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Daten werden gesendet" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Daten können nicht zum Drucker gesendet werden. Ist noch ein weiterer Auftrag in Bearbeitung?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Drucken wird abgebrochen..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Drucken wurde abgebrochen. Den Drucker überprüfen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Drucken wird pausiert..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Drucken wird fortgesetzt..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Synchronisieren Ihres Druckers" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Möchten Sie Ihre aktuelle Druckerkonfiguration in Cura verwenden?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Die PrintCores und/oder Materialien auf Ihrem Drucker unterscheiden sich von denen Ihres aktuellen Projekts. Für optimale Ergebnisse schneiden Sie stets für die PrintCores und Materialien, die in Ihren Drucker eingelegt wurden." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Anschluss über Netzwerk" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Dieser Drucker ist nicht für das Hosten einer Gruppe verbundener Ultimaker 3-Drucker eingerichtet." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Dieser Drucker ist der Host für eine Gruppe von {count} verbundenen Ultimaker 3-Druckern." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} hat den Druck von '{job_name}‘ beendet. Bitte holen Sie den Druck ab und bestätigen Sie das Räumen des Druckbetts." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} ist für das Drucken von '{job_name}‘ reserviert. Bitte ändern Sie die Druckerkonfiguration passend für den Auftrag, um mit dem Drucken zu beginnen." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Das Senden neuer Aufträge ist (vorübergehend) blockiert; der vorherige Druckauftrag wird noch gesendet." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Es kann kein neuer Druckauftrag gesendet werden: Dieser 3D-Drucker ist (noch) nicht für das Hosten einer Gruppe verbundener Ultimaker 3-Drucker eingerichtet." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "{file_name} wird an Gruppe {cluster_name} gesendet" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "{file_name} wurde an Gruppe {cluster_name} gesendet." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Druckaufträge anzeigen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Öffnet die Schaltfläche für Druckaufträge in Ihrem Browser." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Es können keine Druckaufträge an die Gruppe {cluster_name} gesendet werden." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Um sicherzustellen, dass Ihr {machine_name} mit den neuesten Funktionen ausgestattet ist, wird empfohlen, die Firmware regelmäßig zu aktualisieren Dies kann auf dem {machine_name} (bei Anschluss an ein Netzwerk) oder über USB erfolgen." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Neue Firmware für %s verfügbar" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Download" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Zugriff auf Update-Informationen nicht möglich." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Beim Öffnen Ihrer SolidWorks Datei trat ein Fehler auf! Überprüfen Sie bitte, ob sich Ihre Datei in SolidWorks ohne Probleme öffnen lässt!" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "SolidWorks Teiledatei" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "SolidWorks Einbaudatei" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Konfigurieren" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Fehler beim Starten %s!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "G-Code ändern" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura erfasst anonymisierte Slice-Informationen. Sie können dies in den Einstellungen deaktivieren." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Daten werden erfasst" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Verwerfen" @@ -472,14 +743,19 @@ msgstr "G-Code-Datei" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Schichten" +msgid "Layer view" +msgstr "Schichtenansicht" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura zeigt die Schichten nicht akkurat an, wenn Wire Printing aktiviert ist." +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Schichtenansicht" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "GIF-Bilddatei" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Das gewählte Material ist mit der gewählten Maschine oder Konfiguration nicht kompatibel." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Slicing mit dem aktuellen Material nicht möglich, da es mit der gewählten Maschine oder Konfiguration nicht kompatibel ist." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Slicing nicht möglich" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Die aktuellen Einstellungen lassen kein Schneiden (Slicing) zu. Die folgenden Einstellungen sind fehlerhaft:{0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Schneiden (Slicing) ist nicht möglich, da der Einzugsturm oder die Einzugsposition(en) ungültig ist (sind)." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Es ist kein Objekt zum Schneiden vorhanden, da keines der Modelle der Druckabmessung entspricht. Bitte die Modelle passend skalieren oder drehen." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Schichten werden verarbeitet" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informationen" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Pro Objekteinstellungen konfigurieren" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Empfohlen" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Benutzerdefiniert" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "3MF-Datei" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Düse" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Plugins durchsuchen" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Plugin-ID von {0} wurde nicht erhalten" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Warnhinweis" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Plugin-Browser" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solide" +msgid "Solid view" +msgstr "Solide Ansicht" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "G-Code parsen" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "G-Code-Details" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Stellen Sie sicher, dass der G-Code für Ihren Drucker und Ihre Druckerkonfiguration geeignet ist, bevor Sie die Datei senden. Der Darstellung des G-Codes ist möglicherweise nicht korrekt." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Cura-Projekt 3MF-Datei" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Upgrades wählen" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Druckbett nivellieren" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Außenwand" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Innenwände" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Außenhaut" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Füllung" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Stützstruktur-Füllung" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Stützstruktur-Schnittstelle" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Stützstruktur" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Skirt" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Bewegungen" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Einzüge" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Sonstige" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Vorgeschnittene Datei {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Kein Material geladen" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Unbekanntes Material" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Neue Position für Objekte finden" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Position finden" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Innerhalb der Druckabmessung für alle Objekte konnte keine Position gefunden werden" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Kann Position nicht finden" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Datei bereits vorhanden" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "Die Datei {0} ist bereits vorhanden. Soll die Datei wirklich überschrieben werden?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Benutzerdefiniert" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Benutzerdefiniertes Material" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Das gewählte Material ist mit der gewählten Maschine oder Konfiguration nicht kompatibel." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Material nicht kompatibel" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Durch den ausgewählten Materialdurchmesser wird das Material mit dem aktuellen Drucker inkompatibel." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Rückgängig machen" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Änderung des Materialdurchmessers rückgängig machen" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" msgstr "Export des Profils nach {0} fehlgeschlagen: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." msgstr "Export des Profils nach {0} fehlgeschlagen: Fehlermeldung von Writer-Plugin" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Profil wurde nach {0} exportiert" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Exportdetails" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" msgstr "Import des Profils aus Datei {0} fehlgeschlagen: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Profil erfolgreich importiert {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Profil {0} hat einen unbekannten Dateityp oder ist beschädigt." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Benutzerdefiniertes Profil" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Für das Profil fehlt eine Qualitätsangabe." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Es konnte keine Qualitätsangabe {0} für die vorliegende Konfiguration gefunden werden." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "Die Höhe der Druckabmessung wurde aufgrund des Wertes der Einstellung „Druckreihenfolge“ reduziert, um eine Kollision der Brücke mit den gedruckten Modellen zu verhindern." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Produktabmessungen" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Objekte vervielfältigen und platzieren" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Objekt-Platzierung" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Ein schwerer Ausnahmezustand ist aufgetreten, den wir nicht beseitigen konnten!

\n" -"

Bitte senden Sie einen Fehlerbericht an folgende URL http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Ein schwerer Ausnahmezustand ist aufgetreten, den wir nicht beseitigen konnten!

\n

Bitte senden Sie einen Fehlerbericht an folgende URL http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Webseite öffnen" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Geräte werden geladen..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Die Szene wird eingerichtet..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Die Benutzeroberfläche wird geladen..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Es kann nur jeweils ein G-Code gleichzeitig geladen werden. Wichtige {0} werden übersprungen." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (Breite)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (Höhe)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Druckbettform" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Ausgang in Mitte" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Heizbares Bett" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "G-Code-Variante" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X min." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Abstand von der linken Seite des Druckkopfes zur Düsenmitte. Wird verwendet, um Kollisionen zwischen vorherigen Drucken und dem Druckkopf während des Druckmodus „Nacheinander“ zu vermeiden." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y min." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Abstand von der Vorderseite des Druckkopfes zur Düsenmitte. Wird verwendet, um Kollisionen zwischen vorherigen Drucken und dem Druckkopf während des Druckmodus „Nacheinander“ zu vermeiden." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X max." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Abstand von der rechten Seite des Druckkopfes zur Düsenmitte. Wird verwendet, um Kollisionen zwischen vorherigen Drucken und dem Druckkopf während des Druckmodus „Nacheinander“ zu vermeiden." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y max." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Abstand von der Rückseite des Druckkopfes zur Düsenmitte. Wird verwendet, um Kollisionen zwischen vorherigen Drucken und dem Druckkopf während des Druckmodus „Nacheinander“ zu vermeiden." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Brückenhöhe" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Der Höhenunterschied zwischen der Düsenspitze und dem Brückensystem (X- und Y-Achsen). Wird verwendet, um Kollisionen zwischen vorherigen Drucken und der Brücke zu verhindern, wenn im Modus „Nacheinander“ gedruckt wird." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Anzahl Extruder" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Der Nenndurchmesser des durch den Drucker unterstützten Filaments. Der exakte Durchmesser wird durch das Material und/oder das Profil überschrieben." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Materialdurchmesser" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Düsengröße" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "G-Code starten" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "G-Code-Befehle, die zum Start ausgeführt werden sollen." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "G-Code beenden" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "G-Code-Befehle, die am Ende ausgeführt werden sollen." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Düseneinstellungen" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "X-Versatz Düse" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Y-Versatz Düse" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "G-Code Extruder-Start" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "G-Code Extruder-Ende" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D-Einstellungen" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Speichern" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Drucken auf: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Extruder-Temperatur %1/%2 °C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Bett-Temperatur %1/%2 °C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Drucken" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Änderungsprotokoll" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Unbekannter Fehlercode: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Anschluss an vernetzten Drucker" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Um über das Netzwerk direkt auf Ihrem Drucker zu drucken, stellen Sie bitte sicher, dass der Drucker mit dem Netzwerkkabel verbunden ist oder verbinden Sie Ihren Drucker mit Ihrem WLAN-Netzwerk. Wenn Sie Cura nicht mit Ihrem Drucker verbinden, können Sie dennoch ein USB-Laufwerk für die Übertragung von G-Code-Dateien auf Ihren Drucker verwenden.\n" -"\n" -"Wählen Sie Ihren Drucker aus der folgenden Liste:" +msgstr "Um über das Netzwerk direkt auf Ihrem Drucker zu drucken, stellen Sie bitte sicher, dass der Drucker mit dem Netzwerkkabel verbunden ist oder verbinden Sie Ihren Drucker mit Ihrem WLAN-Netzwerk. Wenn Sie Cura nicht mit Ihrem Drucker verbinden, können Sie dennoch ein USB-Laufwerk für die Übertragung von G-Code-Dateien auf Ihren Drucker verwenden.\n\nWählen Sie Ihren Drucker aus der folgenden Liste:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Hinzufügen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Bearbeiten" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Entfernen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Aktualisieren" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Wenn Ihr Drucker nicht aufgeführt ist, lesen Sie die Anleitung für Fehlerbehebung für Netzwerkdruck" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Typ" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Unbekannt" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Firmware-Version" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Adresse" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "Der Drucker unter dieser Adresse hat nicht reagiert." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Verbinden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Druckeradresse" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Geben Sie die IP-Adresse oder den Hostnamen Ihres Druckers auf dem Netzwerk ein." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Mit einem Drucker verbinden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Die Druckerkonfiguration in Cura laden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Konfiguration aktivieren" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Dieser Drucker ist nicht für das Hosten einer Gruppe verbundener Ultimaker 3-Drucker eingerichtet" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Dieser Drucker ist der Host für eine Gruppe von %1 verbundenen Ultimaker 3-Druckern" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Drucken über Netzwerk" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Drucken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 ist nicht für das Hosten einer Gruppe verbundener Ultimaker 3-Drucker eingerichtet" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Drucken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Reserviert" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Beendet" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Vorbereitung" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Verfügbar" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Fertiggestellt am: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Druckplatte räumen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Vorbereitung für den Druck" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Akzeptiert keine Druckaufträge" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Öffnet die Seite für Druckaufträge mit Ihrem Standard-Webbrowser." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Druckaufträge anzeigen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "DRUCKERGRUPPE" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Druckaufträge" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Drucken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "In Warteschlange" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Warten auf eine Konfigurationsänderung" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Drucker" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Drucker anzeigen" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Cura SolidWorks Plugin-Konfiguration" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Standardqualität des exportierten STL:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Immer nachfragen" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Immer Qualität „Fein“ verwenden" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Immer Qualität „Grob“ verwenden" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "SolidWorks-Datei importieren als STL ..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Qualität des exportierten STL" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Qualität" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Grob" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Fein" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Aktive Skripts Nachbearbeitung ändern" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Ansichtsmodus: Schichten" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Farbschema" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Materialfarbe" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Linientyp" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Kompatibilitätsmodus" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Bewegungen anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Helfer anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Gehäuse anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Füllung anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Nur obere Schichten anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "5 detaillierte Schichten oben anzeigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Oben/Unten" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Innenwand" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Glättung" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Einstellungen wählen" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Einstellungen für die benutzerdefinierte Anpassung dieses Modells wählen" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtern..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Alle anzeigen" @@ -1613,27 +2083,45 @@ msgstr "Öffnen" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Plugins finden und aktualisieren" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Hier finden Sie eine Liste mit Plugins von Fremdanbietern." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Aktualisierung" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Installiert" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Plugin für Lizenzvereinbarung" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " Das Plugin enthält eine Lizenz.\nSie müssen diese Lizenz akzeptieren, um das Plugin zu installieren.\nStimmen Sie den nachfolgenden Bedingungen zu?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Akzeptieren" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Ablehnen" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Alles ist in Ordnung! Der Check-up ist abgeschlossen." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Nicht mit einem Drucker verbunden" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Drucker nimmt keine Befehle an" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "In Wartung. Den Drucker überprüfen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Verbindung zum Drucker wurde unterbrochen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Es wird gedruckt..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Pausiert" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Vorbereitung läuft..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Bitte den Ausdruck entfernen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Zurückkehren" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pausieren" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Drucken abbrechen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Drucken abbrechen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Soll das Drucken wirklich abgebrochen werden?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Sie haben einige Profileinstellungen angepasst.\n" -"Möchten Sie diese Einstellungen übernehmen oder verwerfen?" +msgstr "Sie haben einige Profileinstellungen angepasst.\nMöchten Sie diese Einstellungen übernehmen oder verwerfen?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Angepasst" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Stets nachfragen" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Verwerfen und zukünftig nicht mehr nachfragen" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Übernehmen und zukünftig nicht mehr nachfragen" @@ -2033,12 +2519,12 @@ msgstr "Sichtbarkeit einstellen" #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 msgctxt "@label:textbox" msgid "Check all" -msgstr "Alle prüfen" +msgstr "Alles wählen" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Berechnet" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Einheit" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Allgemein" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Sprache:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Währung:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Thema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Die Anwendung muss neu gestartet werden, um die Änderungen zu übernehmen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Bei Änderung der Einstellungen automatisch schneiden." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Automatisch schneiden" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Viewport-Verhalten" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Nicht gestützte Bereiche des Modells in rot hervorheben. Ohne Support werden diese Bereiche nicht korrekt gedruckt." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Überhang anzeigen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Bewegt die Kamera, bis sich das Modell im Mittelpunkt der Ansicht befindet, wenn ein Modell ausgewählt wurde" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Zentrieren Sie die Kamera, wenn das Element ausgewählt wurde" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Soll das standardmäßige Zoom-Verhalten von Cura umgekehrt werden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Kehren Sie die Richtung des Kamera-Zooms um." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Soll das Zoomen in Richtung der Maus erfolgen?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "In Mausrichtung zoomen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Sollen Modelle auf der Plattform so verschoben werden, dass sie sich nicht länger überschneiden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Stellen Sie sicher, dass die Modelle getrennt gehalten werden" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Sollen Modelle auf der Plattform so nach unten verschoben werden, dass sie die Druckplatte berühren?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Setzt Modelle automatisch auf der Druckplatte ab" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Warnmeldung im G-Code-Reader anzeigen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Warnmeldung in G-Code-Reader" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Soll die Schicht in den Kompatibilitätsmodus gezwungen werden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Schichtenansicht Kompatibilitätsmodus erzwingen (Neustart erforderlich)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Dateien öffnen und speichern" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Sollen Modelle an das Erstellungsvolumen angepasst werden, wenn sie zu groß sind?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Große Modelle anpassen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Ein Modell kann extrem klein erscheinen, wenn seine Maßeinheit z. B. in Metern anstelle von Millimetern angegeben ist. Sollen diese Modelle hoch skaliert werden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Extrem kleine Modelle skalieren" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Soll ein Präfix anhand des Druckernamens automatisch zum Namen des Druckauftrags hinzugefügt werden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Geräte-Präfix zu Auftragsnamen hinzufügen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Soll beim Speichern einer Projektdatei eine Zusammenfassung angezeigt werden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Dialog Zusammenfassung beim Speichern eines Projekts anzeigen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Standardverhalten beim Öffnen einer Projektdatei" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Standardverhalten beim Öffnen einer Projektdatei: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Immer nachfragen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Immer als Projekt öffnen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Modelle immer importieren" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Wenn Sie Änderungen für ein Profil vorgenommen haben und zu einem anderen Profil gewechselt sind, wird ein Dialog angezeigt, der hinterfragt, ob Sie Ihre Änderungen beibehalten möchten oder nicht; optional können Sie ein Standardverhalten wählen, sodass dieser Dialog nicht erneut angezeigt wird." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Profil überschreiben" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Privatsphäre" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Soll Cura bei Programmstart nach Updates suchen?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Bei Start nach Updates suchen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Sollen anonyme Daten über Ihren Druck an Ultimaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet oder gespeichert werden." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "(Anonyme) Druckinformationen senden" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Drucker" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "Warten auf einen Druckauftrag" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profile" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Profil exportieren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materialien" @@ -2472,12 +2958,12 @@ msgid "Import Material" msgstr "Material importieren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" msgstr "Material konnte nicht importiert werden %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "Material wurde erfolgreich importiert %1" @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Material exportieren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" msgstr "Exportieren des Materials nach %1: %2 schlug fehl" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Material erfolgreich nach %1 exportiert" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Drucker hinzufügen" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Drucker hinzufügen" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Außenwand" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Innenwände" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Außenhaut" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Füllung" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Stützstruktur-Füllung" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Stützstruktur-Schnittstelle" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Stützstruktur" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Bewegungen" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Einzüge" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Sonstige" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00 Stunden 00 Minuten" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\n" -"Cura verwendet mit Stolz die folgenden Open Source-Projekte:" +msgstr "Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Format Datenaustausch" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Support-Bibliothek für wissenschaftliche Berechnung" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "SVG-Symbole" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profil:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Einige Einstellungs-/Überschreibungswerte unterscheiden sich von den im Profil gespeicherten Werten.\n\nKlicken Sie, um den Profilmanager zu öffnen." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Suchen..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Werte für alle Extruder kopieren" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Diese Einstellung ausblenden" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Diese Einstellung ausblenden" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Diese Einstellung weiterhin anzeigen" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Sichtbarkeit der Einstellung wird konfiguriert..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Einige ausgeblendete Einstellungen verwenden Werte, die von ihren normalen, berechneten Werten abweichen.\n" -"\n" -"Klicken Sie, um diese Einstellungen sichtbar zu machen." +msgstr "Einige ausgeblendete Einstellungen verwenden Werte, die von ihren normalen, berechneten Werten abweichen.\n\nKlicken Sie, um diese Einstellungen sichtbar zu machen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Diese Einstellung hat einen vom Profil abweichenden Wert.\n" -"\n" -"Klicken Sie, um den Wert des Profils wiederherzustellen." +msgstr "Diese Einstellung hat einen vom Profil abweichenden Wert.\n\nKlicken Sie, um den Wert des Profils wiederherzustellen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Diese Einstellung wird normalerweise berechnet; aktuell ist jedoch ein Absolutwert eingestellt.\n" -"\n" -"Klicken Sie, um den berechneten Wert wiederherzustellen." +msgstr "Diese Einstellung wird normalerweise berechnet; aktuell ist jedoch ein Absolutwert eingestellt.\n\nKlicken Sie, um den berechneten Wert wiederherzustellen." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Druckeinrichtung" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Druckeinrichtung deaktiviert\n" -"G-Code-Dateien können nicht geändert werden" +msgstr "Druckeinrichtung deaktiviert\nG-Code-Dateien können nicht geändert werden" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00 Stunden 00 Minuten" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Zeitangaben" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Druckzeit" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Empfohlene Druckeinrichtung

Drucken mit den empfohlenen Einstellungen für den gewählten Drucker, das gewählte Material und die gewählte Qualität." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Benutzerdefinierte Druckeinrichtung

Druck mit Feineinstellung über jedem einzelnen Bereich des Schneidvorgangs." @@ -2807,7 +3253,7 @@ msgstr "&Ansicht" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automatisch: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Es ist kein Drucker verbunden" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Heißes Ende" +msgid "Extruder" +msgstr "Extruder" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Die Zieltemperatur des Hotend. Das Hotend wird auf diese Temperatur aufgeheizt oder abgekühlt. Wenn der Wert 0 beträgt, wird die Hotend-Heizung ausgeschaltet." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Die aktuelle Temperatur dieses Extruders." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Die Farbe des Materials in diesem Extruder." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Das Material in diesem Extruder." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Die in diesem Extruder eingesetzte Düse." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Druckbett" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Die Zieltemperatur des heizbaren Betts. Das Bett wird auf diese Temperatur aufgeheizt oder abgekühlt. Wenn der Wert 0 beträgt, wird die Bettheizung ausgeschaltet." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Die aktuelle Temperatur des beheizten Betts." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Die Temperatur, auf die das Bett vorgeheizt wird." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Abbrechen" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Vorheizen" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Heizen Sie das Bett vor Druckbeginn auf. Sie können Ihren Druck während des Aufheizens weiter anpassen und müssen nicht warten, bis das Bett aufgeheizt ist, wenn Sie druckbereit sind." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Aktiver Druck" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Name des Auftrags" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Druckzeit" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Geschätzte verbleibende Zeit" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Sichtbarkeit einstellen wird konfiguriert..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Bitte laden Sie ein 3D-Modell" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Bereit zum Slicen (Schneiden)" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Das Slicing läuft..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Bereit zum %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Slicing nicht möglich" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Slicing ist nicht verfügbar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Vorbereiten" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Abbrechen" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Wählen Sie das aktive Ausgabegerät" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Datei(en) öffnen" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Hilfe" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Datei öffnen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Ansichtsmodus" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Einstellungen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Neues Projekt" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Möchten Sie wirklich ein neues Projekt beginnen? Damit werden das Druckbett und alle nicht gespeicherten Einstellungen gelöscht." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Plugin installieren" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Datei(en) öffnen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Es wurden eine oder mehrere G-Code-Datei(en) innerhalb der von Ihnen gewählten Dateien gefunden. Sie können nur eine G-Code-Datei auf einmal öffnen. Wenn Sie eine G-Code-Datei öffnen möchten wählen Sie bitte nur eine Datei." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Projektzusammenfassung beim Speichern nicht erneut anzeigen" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Speichern" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Vorbereiten" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Überwachen" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Schichtdicke" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Druckgeschwindigkeit" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Langsamer" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Schneller" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Füllung" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Bei fehlender Füllung bleibt Ihr Modell hohl, mit einer geringen Festigkeit." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Eine dünne (20 %) Füllung gibt Ihrem Modell eine durchschnittliche Festigkeit." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Eine dichte (50 %) Füllung gibt Ihrem Modell eine überdurchschnittliche Festigkeit" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Eine solide (100 %) Füllung macht Ihr Modell vollständig massiv." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Graduell" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Die graduelle Füllung steigert die Menge der Füllung nach oben hin schrittweise." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Graduell aktivieren" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Stützstruktur generieren" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Damit werden Strukturen zur Unterstützung von Modellteilen mit Überhängen generiert. Ohne diese Strukturen würden solche Teile während des Druckvorgangs zusammenfallen." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Extruder für Stützstruktur" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Wählen Sie, welcher Extruder für die Unterstützung verwendet wird. Dient zum Konstruieren von Stützstrukturen unter dem Modell, damit dieses nicht absinkt oder frei schwebend gedruckt wird." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Druckplattenhaftung" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Drucken eines Brim- oder Raft-Elements aktivieren. Es wird ein flacher Bereich rund um oder unter Ihrem Objekt hinzugefügt, das im Anschluss leicht abgeschnitten werden kann. " -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Sie benötigen Hilfe für Ihre Drucke?
Lesen Sie die Ultimaker Anleitungen für Fehlerbehebung>" @@ -3406,8 +3838,8 @@ msgstr "Sie benötigen Hilfe für Ihre Drucke?
Lesen Sie die Ult msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ausgewähltes Modell drucken mit %1" +msgstr[1] "Ausgewählte Modelle drucken mit %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Engine-Protokoll" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Material" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "{0}
already exists. Are you sure you want to overwrite it?" +#~ msgstr "Die Datei {0} ist bereits vorhanden. Soll die Datei wirklich überschrieben werden?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Export des Profils nach {0} fehlgeschlagen: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Export des Profils nach {0} fehlgeschlagen: Fehlermeldung von Writer-Plugin" + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Profil wurde nach {0} exportiert" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Import des Profils aus Datei {0} fehlgeschlagen: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Doodle3D-Einstellungen" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Drucken auf: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Extruder-Temperatur %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Bett-Temperatur %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Ansichtsmodus: Schichten" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Material konnte nicht importiert werden %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Material wurde erfolgreich importiert %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Exportieren des Materials nach %1: %2 schlug fehl" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Material erfolgreich nach %1 exportiert" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Heißes Ende" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Ansichtsmodus" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Drucken" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0 %" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Bei fehlender Füllung bleibt Ihr Modell hohl, mit einer geringen Festigkeit." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20 %" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Eine dünne (20 %) Füllung gibt Ihrem Modell eine durchschnittliche Festigkeit." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50 %" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Eine dichte (50 %) Füllung gibt Ihrem Modell eine überdurchschnittliche Festigkeit" + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100 %" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Eine solide (100 %) Füllung macht Ihr Modell vollständig massiv." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Graduell" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Bietet Unterstützung für das Schreiben von X3G-Dateien" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G-Writer" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/de/fdmextruder.def.json.po b/resources/i18n/de_DE/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/de/fdmextruder.def.json.po rename to resources/i18n/de_DE/fdmextruder.def.json.po index c1b2bd9c17..68e38e8ff6 100644 --- a/resources/i18n/de/fdmextruder.def.json.po +++ b/resources/i18n/de_DE/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:30+0200\n" "Last-Translator: Bothof \n" "Language-Team: German\n" -"Language: German\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: de\n" -"Country-Code: DE\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "Die für das Drucken verwendete Extruder-Einheit. Diese wird für die Me #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Düsen-ID" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Der Düsen-ID für eine Extruder-Einheit, z. B. „AA 0,4“ und „BB 0,8“." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/de/fdmprinter.def.json.po b/resources/i18n/de_DE/fdmprinter.def.json.po similarity index 89% rename from resources/i18n/de/fdmprinter.def.json.po rename to resources/i18n/de_DE/fdmprinter.def.json.po index 7512096fce..36dc369905 100644 --- a/resources/i18n/de/fdmprinter.def.json.po +++ b/resources/i18n/de_DE/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: German\n" -"Language: German\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: de\n" -"Country-Code: DE\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "Die Bezeichnung Ihres 3D-Druckermodells." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Anzeige der Gerätevarianten" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"Gcode-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n" -"." +msgstr "Gcode-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"Gcode-Befehle, die Am Ende ausgeführt werden sollen – getrennt durch \n" -"." +msgstr "Gcode-Befehle, die Am Ende ausgeführt werden sollen – getrennt durch \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "GUID des Materials. Dies wird automatisch eingestellt. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Warten auf Aufheizen der Druckplatte" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Option zur Eingabe eines Befehls beim Start, um zu warten, bis die Druck #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Warten auf Aufheizen der Düse" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Option zur Eingabe eines Befehls beim Start, um zu warten, bis die Düse #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Materialtemperaturen einfügen" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Option zum Einfügen von Befehlen für die Düsentemperatur am Start des #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Temperaturprüfung der Druckplatte einfügen" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Option zum Einfügen von Befehlen für die Druckplattentemperatur am Sta #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Gerätebreite" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "Die Breite (X-Richtung) des druckbaren Bereichs." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Gerätetiefe" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "Die Tiefe (Y-Richtung) des druckbaren Bereichs." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Druckbettform" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Elliptisch" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Gerätehöhe" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "Die Höhe (Z-Richtung) des druckbaren Bereichs." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Mit beheizter Druckplatte" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Option für vorhandene beheizte Druckplatte." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Is-Center-Ursprung" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Der Typ des zu generierenden Gcodes." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumetrisch)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "Der Höhenunterschied zwischen der Düsenspitze und dem Brückensystem ( #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Düsen-ID" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Der Düsen-ID für eine Extruder-Einheit, z. B. „AA 0,4“ und „BB 0,8“." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "Die Breite einer einzelnen Wandlinie für alle Wandlinien, außer der ä #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Oberfläche Außenhaut Linienbreite" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Die Breite einer einzelnen Linie der oberen Druckbereiche." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Die Linienbreite eines einzelnen Einzugsturms." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Linienbreite der ersten Schicht" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Multiplikator der Linienbreite der ersten Schicht. Eine Erhöhung dieses Werts verbessert möglicherweise die Betthaftung." #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Gehäuse" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Extruder Außenwand" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Die für das Drucken der Außenwände verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Extruder Innenwände" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "Die für das Drucken der Innenwände verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Wanddicke" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Die Dicke der Wände in horizontaler Richtung. Dieser Wert geteilt durch die Wandliniendicke bestimmt die Anzahl der Wände." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Entfernung einer Bewegung nach der Außenwand, um die Z-Naht besser zu v #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Oberfläche Außenhaut Extruder" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "Die für das Drucken der obersten Außenhaut verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Oberfläche Außenhaut Schichten" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Die Anzahl der obersten Außenhautschichten. Üblicherweise reicht eine einzige oberste Schicht aus, um höherwertige Oberflächen zu generieren." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Oberfläche Außenhaut Muster" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Das Muster der obersten Schichten." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Linien" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Konzentrisch" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zickzack" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Linienrichtungen der Oberfläche Außenhaut" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Eine Liste von Ganzzahl-Linienrichtungen für den Fall, wenn die oberen Außenhautschichten die Linien- oder Zickzack-Muster verwenden. Elemente aus der Liste werden während des Aufbaus der Schichten sequentiell verwendet und wenn das Listenende erreicht wird, beginnt die Liste von vorne. Die Listenobjekte werden durch Kommas getrennt und die gesamte Liste ist in eckige Klammern gesetzt. Standardmäßig ist eine leere Liste vorhanden, was bedeutet, dass herkömmliche Standardwinkel (45- und 135-Grad) verwendet werden." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Extruder Oben/Unten" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Die für das Drucken der oberen und unteren Außenhaut verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "Überall" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Drucken von dünnen Wänden" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Drucken Sie Teile des Modells, die horizontal dünner als die Düsengröße sind." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Der Abstand, der auf die Polygone in den einzelnen Schichten angewendet #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Horizontale Erweiterung erste Schicht" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Der Abstand, der auf die Polygone in der ersten Schicht angewendet wird. Ein negativer Wert kann ein Zerquetschen der ersten Schicht, auch als „Elefantenfuß“ bezeichnet, ausgleichen." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Zufall" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Schärfste Kante" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Die Y-Koordinate der Position, neben der der Druck jedes Teils in einer Schicht begonnen wird." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Präferenz Nahtkante" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Definieren Sie, ob Kanten am Modell-Umriss die Nahtposition beeinflussen. Keine bedeutet, dass Kanten keinen Einfluss auf die Nahtposition haben. Naht verbergen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden Kante auftreten. Naht offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer Außenkante auftreten. Naht verbergen oder offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden oder außenliegenden Kante auftreten." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Keine" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Naht verbergen" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Naht offenlegen" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Naht verbergen oder offenlegen" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Realitvwert der Z-Naht" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Bei Aktivierung sind die Z-Naht-Koordinaten relativ zur Mitte der jeweiligen Teile. Bei Deaktivierung definieren die Koordinaten eine absolute Position auf dem Druckbett." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Wenn das Modell schmale vertikale Lücken hat, kann etwa 5 % zusätzliche Rechenzeit aufgewendet werden, um eine obere und untere Außenhaut in diesen engen Räumen zu generieren. In diesem Fall deaktivieren Sie die Einstellung." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Linienanzahl der zusätzlichen Außenhaut" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Der äußerste Teil des oberen/unteren Musters wird durch eine Anzahl von konzentrischen Linien ersetzt. Die Verwendung von ein oder zwei Linien verbessert Dächer, die auf Füllmaterial beginnen." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Füllung" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Extruder für Füllung" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Die für das Drucken der Füllung verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Füllmuster" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Würfel-, Tetrahedral- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Würfel- und Tetrahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Würfel-, Viertelwürfel-, Octahedral- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Würfel-Unterbereich" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tetrahedral" +msgid "Octet" +msgstr "Octet" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Viertelwürfel" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zickzack" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Quer" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "3D-Quer" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Füllungslinien verbinden" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Verbindet die Enden, an denen das Füllmuster auf die Innenwand trifft, mithilfe von Linien, die der Form der Innenwand folgen. Durch Aktivierung dieser Einstellung kann die Füllung besser an den Wänden haften; auch die Auswirkungen der Füllung auf die Qualität der vertikalen Flächen werden reduziert. Die Deaktivierung dieser Einstellung reduziert den Materialverbrauch." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Prozentsatz Außenhaut überlappen" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Das Ausmaß des Überlappens zwischen der Außenhaut und den Wänden als Prozentwert der Linienbreite. Ein leichtes Überlappen ermöglicht es den Wänden, eine solide Verbindung mit der Außenhaut herzustellen. Dies ist ein Prozentwert der durchschnittlichen Linienbreiten der Außenhautlinien und der innersten Wand." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Keine Füllungsbereiche generieren, die kleiner als dieser sind (stattdessen Außenhaut verwenden). " #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Außenhaut in Füllung expandieren" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Breite für das Entfernen der Außenhaut" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Expandieren Sie Außenhautbereiche der oberen und/oder unteren Außenhaut auf flache Flächen. Standardmäßig endet die Außenhaut unter den Wandlinien, die die Füllung umgeben, allerdings kann dies bei einer geringen Dichte der Füllung zu Lochbildung führen. Diese Einstellung erstreckt die Außenhaut über die Wandlinien hinaus, sodass die Füllung auf der nächsten Schicht auf der Außenhaut verbleibt." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Dies bezeichnet die größte Breite der zu entfernenden Außenhautbereiche. Jeder Außenhautbereich, der kleiner als dieser Wert ist, verschwindet. Dies kann bei der Beschränkung der benötigten Zeit und Materialmenge für das Drucken der Außenhaut oben/unten an abgeschrägten Flächen des Modells unterstützen." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Außenhaut oben in Füllung expandieren" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Breite für das Entfernen der Außenhaut oben" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Expandiert die oberen Außenhautbereiche (Bereiche mit Luft darüber), sodass sie die Füllung darüber stützen." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Dies bezeichnet die größte Breite der zu entfernenden oberen Außenhautbereiche. Jeder Außenhautbereich, der kleiner als dieser Wert ist, verschwindet. Dies kann bei der Beschränkung der benötigten Zeit und Materialmenge für das Drucken der oberen Außenhaut an abgeschrägten Flächen des Modells unterstützen." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Außenhaut unten in Füllung expandieren" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Breite für das Entfernen der Außenhaut unten" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Expandiert die Außenhautbodenbereiche (Bereiche mit Luft darunter), sodass sie durch die Füllungsschichten darüber und darunter verankert werden." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Dies bezeichnet die größte Breite der zu entfernenden unteren Außenhautbereiche. Jeder Außenhautbereich, der kleiner als dieser Wert ist, verschwindet. Dies kann bei der Beschränkung der benötigten Zeit und Materialmenge für das Drucken der unteren Außenhaut an abgeschrägten Flächen des Modells unterstützen." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Expansionsdistanz Außenhaut" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Bezeichnet die Distanz der Expansion der Außenhaut in die Füllung. Die Standarddistanz ist ausreichend, um den Spalt zwischen den Füllungslinien zu füllen und verhindert, dass Löcher in der Außenhaut auftreten, wo sie auf die Wand trifft, wenn die Dichte der Füllung gering ist. Eine kleinere Distanz ist oftmals ausreichend." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Die Distanz, um die die Außenhäute in die Füllung expandiert werden. Höhere Werte lassen die Außenhaut besser am Füllmuster und die Wände an den angrenzenden Schichten besser an der Außenhaut haften. Niedrigere Werte reduzieren den Materialverbrauch." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Expansionsdistanz Außenhaut oben" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Die Distanz, um die die oberen Außenhäute in die Füllung expandiert werden. Höhere Werte lassen die Außenhaut besser am Füllmuster und die Wände an den Schichten darüber besser an der Außenhaut haften. Niedrigere Werte reduzieren den Materialverbrauch." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Expansionsdistanz Außenhaut unten" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Die Distanz, um die die unteren Außenhäute in die Füllung expandiert werden. Höhere Werte lassen die Außenhaut besser am Füllmuster und an den Wänden auf der darunter liegenden Schicht haften. Niedrigere Werte reduzieren den Materialverbrauch." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "Die Geschwindigkeit, mit der alle Innenwände gedruckt werden. Wenn die #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Oberfläche Außenhaut Geschwindigkeit" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Die Geschwindigkeit, mit der die Oberflächen der Außenhaut-Schichten gedruckt werden." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Die Geschwindigkeit, mit der die oberen/unteren Schichten gedruckt werden." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "Die Beschleunigung, mit der die Innenwände gedruckt werden." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Beschleunigung Oberfläche Außenhaut" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Die Beschleunigung, mit der die Oberflächen der Außenhaut-Schichten gedruckt werden." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Die Beschleunigung, mit der die oberen/unteren Schichten gedruckt werden." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Die maximale unmittelbare Geschwindigkeitsänderung, mit der alle Innenw #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Justierung der Oberfläche Außenhaut" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Die maximale unmittelbare Geschwindigkeitsänderung, mit der die oberen Schichten der Außenhaut gedruckt werden." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Die maximale unmittelbare Geschwindigkeitsänderung, mit der die oberen/unteren Schichten gedruckt werden." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zickzack" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Quer" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Die Zickzack-Elemente werden verbunden. Dies erhöht die Stärke der Zic #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Stützstruktur in Blöcke aufteilen" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Überspringen Sie einige Stützstruktur-Verbindungen, um das Brechen der Stützstruktur zu erleichtern. Diese Einstellung ist für die Zickzack-Stützstruktur-Füllung vorgesehen." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Blockgröße für Stützstruktur" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Überspringen Sie eine Verbindung zwischen den Stützstrukturlinien nach jedem N-Millimeter, um das Brechen der Stützstruktur zu erleichtern." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Anzahl der Stützstruktur-Blocklinien" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Überspringen Sie eine in jeder N-Verbindungslinie, um das Wegbrechen der Stützstruktur zu erleichtern." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "Der Abstand, der auf die Polygone in den einzelnen Schichten angewendet #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Stützstruktur Füllschichtdicke" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Die Dicke pro Schicht des Füllmaterials der Stützstruktur. Dieser Wert sollte immer ein Vielfaches der Schichtdicke sein und wird sonst auf- oder abgerundet." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Stufenweise Füllungsschritte Stützstruktur" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Anzahl der Male zur Reduzierung der Stützstruktur-Füllungsdichte um die Hälfte bei Arbeiten unter den oberen Flächen. Bereiche, die weiter an den Oberflächen sind, erhalten eine höhere Dichte bis zur Füllungsdichte der Stützstruktur." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Höhe stufenweiser Füllungsschritt Stützstruktur" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Die Höhe der Stützstruktur-Füllung einer bestimmten Dichte vor dem Umschalten auf die halbe Dichte." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\n" -"Es handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden Skirt-Linien in äußerer Richtung angebracht." +msgstr "Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\nEs handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden Skirt-Linien in äußerer Richtung angebracht." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Brim nur an der Außenseite des Modells drucken. Damit reduziert sich die Anzahl der Brims, die Sie später entfernen müssen, während die Druckbetthaftung nicht signifikant eingeschränkt wird." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Z-Versatz der ersten Schicht" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "Der Extruder wird um diesen Wert von der normalen Höhe der ersten Schicht versetzt. Das kann positiv (erhöht) oder negativ (abgesenkt) erfolgen. Einige Filamenttypen haften besser am Druckbett, wenn der Extruder leicht erhöht ist." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Z-Versatz Kegelschichten" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Bei Nicht-Null wird der Z-Versatz auf 0 über den zahlreichen Schichten reduziert. Ein Wert von 0 bedeutet, dass der Z-Versatz über alle Schichten des Drucks hinweg konstant bleibt." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Wenn die Raft-Funktion aktiviert ist, gibt es einen zusätzlichen Raft-Bereich um das Modell herum, für das ein Raft erstellt wird. Bei einem größeren Abstand wird ein kräftigeres Raft-Element hergestellt, wobei jedoch mehr Material verbraucht wird und weniger Platz für das gedruckte Modell verbleibt." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Raft-Glättung" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Diese Einstellung definiert, wie stark die Innenkanten des Raft-Umrisses gerundet werden. Die Innenkanten werden zu einem Halbkreis mit einem Radius entsprechend des hier definierten Werts gerundet. Diese Einstellung entfernt außerdem Löcher im Raft-Umriss, die kleiner als ein solcher Kreis sind." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Wischt nach dem Schalten des Extruders ausgetretenes Material am ersten #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Einzugsturm Spülvolumen" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Menge des zu spülenden Filaments beim Wischen des Spülturms. Spülen ist hilfreich, um dem Filament-Verlust durch Aussickern während der Inaktivität der Düse zu kompensieren." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Glättet die spiralförmigen Konturen, um die Sichtbarkeit der Z-Naht zu reduzieren (die Z-Naht sollte auf dem Druck kaum sichtbar sein, ist jedoch in der Schichtenansicht erkennbar). Beachten Sie, dass das Glätten dazu neigt, feine Oberflächendetails zu verwischen." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Relative Extrusion" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Verwenden Sie die relative Extrusion anstelle der absoluten Extrusion. Die Verwendung relativer E-Schritte erleichtert die Nachbearbeitung des G-Code. Diese Option wird jedoch nicht von allen Druckern unterstützt und kann geringfügige Abweichungen bei der Menge des abgesetzten Materials im Vergleich zu absoluten E-Schritten zur Folge haben. Ungeachtet dieser Einstellung wird der Extrusionsmodus stets auf absolut gesetzt, bevor ein G-Code-Skript ausgegeben wird." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "experimentell!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Reihenfolge des Wanddrucks optimieren" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optimieren Sie die Reihenfolge, in der die Wände gedruckt werden, um die Anzahl der Einzüge und die zurückgelegten Distanzen zu reduzieren. Dieser Schritt bringt für die meisten Teile Vorteile, allerdings werden einige möglicherweise länger benötigen. Vergleichen Sie deshalb bitte die Schätzung der Druckzeiten mit und ohne Optimierung." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Die Geschwindigkeit, mit der die Bewegung während des Coasting erfolgt, in Relation zur Geschwindigkeit des Extrusionswegs. Ein Wert leicht unter 100 % wird empfohlen, da während der Coasting-Bewegung der Druck in den Bowden-Röhren abfällt." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Linienanzahl der zusätzlichen Außenhaut" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Der äußerste Teil des oberen/unteren Musters wird durch eine Anzahl von konzentrischen Linien ersetzt. Die Verwendung von ein oder zwei Linien verbessert Dächer, die auf Füllmaterial beginnen." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Die Richtung, in welcher die oberen/unteren Schichten gedruckt werden, wird abgewechselt. Normalerweise werden diese nur diagonal gedruckt. Diese Einstellung fügt die Nur-X- und Nur-Y-Richtung zu." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Größe 3D-Quertasche" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Die Größe der Taschen bei Überkreuzung im 3D-Quermuster bei Höhen, in denen sich das Muster selbst berührt." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "3D-Quertaschen abwechseln" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Wenden Sie Taschen nur in der Hälfte der Überkreuzungen im 3D-Quermuster an und wechseln Sie die Position der Taschen zwischen den Höhen ab, in denen sich das Muster selbst berührt." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Drucken Sie die Füllung hier und da, sodass sich das Filament innerhalb #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Spaghetti-Füllung Schrittfunktion" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Definiert, ob die Spaghetti-Füllung in Schritten gedruckt oder alle Filamente für die Füllung am Ende des Druckes gedruckt werden." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Justiert die Dichte der Spathetti-Füllung. Beachten Sie, dass die Füll #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Spaghetti-Füllung extra Volumen" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Ein Korrekturbegriff für die Anpassung des Gesamtvolumens, das jedes Mal bei der Spaghetti-Füllung extrudiert wird." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\n" -"Dies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur." +msgstr "Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\nDies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Der Abstand zwischen der Düse und den horizontalen Abwärtslinien. Bei #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Glätten aktivieren" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Gehen Sie ein weiteres Mal über die Oberfläche, jedoch ohne Extrusionsmaterial. Damit wird der Kunststoff auf der Oberfläche weiter geschmolzen, was zu einer glatteren Oberfläche führt." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Nur oberste Schicht glätten" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Führen Sie das Glätten nur für die allerletzte Schicht des Meshs aus. Dies spart Zeit, wenn die unteren Schichten keine glatte Oberflächenausführung erfordern." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Glättungsmuster" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Das Muster, das für die Glättung der Oberflächen verwendet wird." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Konzentrisch" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zickzack" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Glättungslinienabstand" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Der Abstand zwischen den Glättungslinien." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Glättungsfluss" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Die Materialmenge relativ zu einer normalen Außenhautlinie, um während des Glättens zu extrudieren. Indem die Düse gefüllt bleibt, können einige Spalten in der oberen Schicht gefüllt werden, allerdings führt zu viel davon zu einer übermäßigen Extrudierung und Markierungen seitlich der Oberfläche." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Glättungseinsatz" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Eine Distanz, die von den Kanten des Modells einzuhalten ist. Die Glättung des gesamten Weges zur Kante des Mesh führt möglicherweise zu einer gezackten Kante Ihres Drucks." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Glättungsgeschwindigkeit" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Die Geschwindigkeit, mit der über die Oberfläche gegangen wird." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Beschleunigung Glättung" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "Die Beschleunigung, mit der das Glätten erfolgt." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Ruckfunktion glätten" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Die maximale unmittelbare Geschwindigkeitsänderung während des Glättens." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angewandt wird." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Extruder für Wand" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Die für das Drucken der Wände verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Würfel-, Tetrahedral- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Würfel- und Tetrahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Tetrahedral" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Außenhaut in Füllung expandieren" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Expandieren Sie Außenhautbereiche der oberen und/oder unteren Außenhaut auf flache Flächen. Standardmäßig endet die Außenhaut unter den Wandlinien, die die Füllung umgeben, allerdings kann dies bei einer geringen Dichte der Füllung zu Lochbildung führen. Diese Einstellung erstreckt die Außenhaut über die Wandlinien hinaus, sodass die Füllung auf der nächsten Schicht auf der Außenhaut verbleibt." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Außenhaut oben in Füllung expandieren" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Expandiert die oberen Außenhautbereiche (Bereiche mit Luft darüber), sodass sie die Füllung darüber stützen." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Außenhaut unten in Füllung expandieren" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Expandiert die Außenhautbodenbereiche (Bereiche mit Luft darunter), sodass sie durch die Füllungsschichten darüber und darunter verankert werden." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Bezeichnet die Distanz der Expansion der Außenhaut in die Füllung. Die Standarddistanz ist ausreichend, um den Spalt zwischen den Füllungslinien zu füllen und verhindert, dass Löcher in der Außenhaut auftreten, wo sie auf die Wand trifft, wenn die Dichte der Füllung gering ist. Eine kleinere Distanz ist oftmals ausreichend." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Einige Zickzack-Verbindungen überspringen" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Überspringen Sie einige Zickzack-Verbindungen, um das Brechen der Stützstruktur einfacher zu machen." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Zickzack-Verbindung Zähler überspringen" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Überspringen Sie eine in jeder N-Verbindungslinie, um das Brechen der Stützstruktur einfacher zu machen." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Anzeige der Gerätevarianten" @@ -4901,4 +5116,4 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Überlappung duale Extrusion" +#~ msgstr "Überlappung duale Extrusion" \ No newline at end of file diff --git a/resources/i18n/en/cura.po b/resources/i18n/en/cura.po deleted file mode 100644 index f7329a9ca2..0000000000 --- a/resources/i18n/en/cura.po +++ /dev/null @@ -1,3788 +0,0 @@ -# Cura -# Copyright (C) 2017 Ultimaker -# This file is distributed under the same license as the Cura package. -# Ruben Dulek , 2017. -# -msgid "" -msgstr "" -"Project-Id-Version: Cura 2.7\n" -"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" -"POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-08-02 16:53+0200\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: English\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Lang-Code: en\n" -"Country-Code: US\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 -msgctxt "@action" -msgid "Machine Settings" -msgstr "Machine Settings" - -#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 -msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "X-Ray" - -#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "X3D File" -msgstr "X3D File" - -#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:16 -msgctxt "@item:inlistbox" -msgid "GCode File" -msgstr "GCode File" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D printing" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 -msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "Print with Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 -msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Print with " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Enable Scan devices..." - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 -msgctxt "@item:inmenu" -msgid "Show Changelog" -msgstr "Show Changelog" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 -msgctxt "@item:inmenu" -msgid "Flatten active settings" -msgstr "Flatten active settings" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 -msgctxt "@info:status" -msgid "Profile has been flattened & activated." -msgstr "Profile has been flattened & activated." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 -msgctxt "@item:inmenu" -msgid "USB printing" -msgstr "USB printing" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:27 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print via USB" -msgstr "Print via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:28 -msgctxt "@info:tooltip" -msgid "Print via USB" -msgstr "Print via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:30 -msgctxt "@info:status" -msgid "Connected via USB" -msgstr "Connected via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer is busy or not connected." -msgstr "Unable to start a new job because the printer is busy or not connected." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 -msgctxt "@info:status" -msgid "This printer does not support USB printing because it uses UltiGCode flavor." -msgstr "This printer does not support USB printing because it uses UltiGCode flavor." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer does not support usb printing." -msgstr "Unable to start a new job because the printer does not support usb printing." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 -msgctxt "@info" -msgid "Unable to update firmware because there are no printers connected." -msgstr "Unable to update firmware because there are no printers connected." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 -#, python-format -msgctxt "@info" -msgid "Could not find firmware required for the printer at %s." -msgstr "Could not find firmware required for the printer at %s." - -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G File" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Save to Removable Drive" -msgstr "Save to Removable Drive" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:24 -#, python-brace-format -msgctxt "@item:inlistbox" -msgid "Save to Removable Drive {0}" -msgstr "Save to Removable Drive {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 -#, python-brace-format -msgctxt "@info:progress" -msgid "Saving to Removable Drive {0}" -msgstr "Saving to Removable Drive {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to {0}: {1}" -msgstr "Could not save to {0}: {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 -#, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Saved to Removable Drive {0} as {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Eject" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Eject removable device {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to removable drive {0}: {1}" -msgstr "Could not save to removable drive {0}: {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Ejected {0}. You can now safely remove the drive." -msgstr "Ejected {0}. You can now safely remove the drive." - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to eject {0}. Another program may be using the drive." -msgstr "Failed to eject {0}. Another program may be using the drive." - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py:68 -msgctxt "@item:intext" -msgid "Removable Drive" -msgstr "Removable Drive" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print over network" -msgstr "Print over network" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 -msgctxt "@properties:tooltip" -msgid "Print over network" -msgstr "Print over network" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 -msgctxt "@info:status" -msgid "Access to the printer requested. Please approve the request on the printer" -msgstr "Access to the printer requested. Please approve the request on the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 -msgctxt "@info:status" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@action:button" -msgid "Retry" -msgstr "Retry" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@info:tooltip" -msgid "Re-send the access request" -msgstr "Re-send the access request" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 -msgctxt "@info:status" -msgid "Access to the printer accepted" -msgstr "Access to the printer accepted" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 -msgctxt "@info:status" -msgid "No access to print with this printer. Unable to send print job." -msgstr "No access to print with this printer. Unable to send print job." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 -msgctxt "@action:button" -msgid "Request Access" -msgstr "Request Access" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 -msgctxt "@info:tooltip" -msgid "Send access request to the printer" -msgstr "Send access request to the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 -msgctxt "@info:status" -msgid "Connected over the network. Please approve the access request on the printer." -msgstr "Connected over the network. Please approve the access request on the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 -msgctxt "@info:status" -msgid "Connected over the network." -msgstr "Connected over the network." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 -msgctxt "@info:status" -msgid "Connected over the network. No access to control the printer." -msgstr "Connected over the network. No access to control the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 -msgctxt "@info:status" -msgid "Access request was denied on the printer." -msgstr "Access request was denied on the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 -msgctxt "@info:status" -msgid "Access request failed due to a timeout." -msgstr "Access request failed due to a timeout." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 -msgctxt "@info:status" -msgid "The connection with the network was lost." -msgstr "The connection with the network was lost." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 -msgctxt "@info:status" -msgid "The connection with the printer was lost. Check your printer to see if it is connected." -msgstr "The connection with the printer was lost. Check your printer to see if it is connected." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 -#, python-format -msgctxt "@info:status" -msgid "Unable to start a new print job, printer is busy. Current printer status is %s." -msgstr "Unable to start a new print job, printer is busy. Current printer status is %s." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No Printcore loaded in slot {0}" -msgstr "Unable to start a new print job. No Printcore loaded in slot {0}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No material loaded in slot {0}" -msgstr "Unable to start a new print job. No material loaded in slot {0}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 -#, python-brace-format -msgctxt "@label" -msgid "Not enough material for spool {0}." -msgstr "Not enough material for spool {0}." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 -#, python-brace-format -msgctxt "@label" -msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 -#, python-brace-format -msgctxt "@label" -msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 -#, python-brace-format -msgctxt "@label" -msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 -msgctxt "@label" -msgid "Are you sure you wish to print with the selected configuration?" -msgstr "Are you sure you wish to print with the selected configuration?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 -msgctxt "@label" -msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 -msgctxt "@window:title" -msgid "Mismatched configuration" -msgstr "Mismatched configuration" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 -msgctxt "@info:status" -msgid "Sending data to printer" -msgstr "Sending data to printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 -msgctxt "@info:status" -msgid "Unable to send data to printer. Is another job still active?" -msgstr "Unable to send data to printer. Is another job still active?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 -msgctxt "@label:MonitorStatus" -msgid "Aborting print..." -msgstr "Aborting print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 -msgctxt "@label:MonitorStatus" -msgid "Print aborted. Please check the printer" -msgstr "Print aborted. Please check the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 -msgctxt "@label:MonitorStatus" -msgid "Pausing print..." -msgstr "Pausing print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 -msgctxt "@label:MonitorStatus" -msgid "Resuming print..." -msgstr "Resuming print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 -msgctxt "@window:title" -msgid "Sync with your printer" -msgstr "Sync with your printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 -msgctxt "@label" -msgid "Would you like to use your current printer configuration in Cura?" -msgstr "Would you like to use your current printer configuration in Cura?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 -msgctxt "@label" -msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 -msgctxt "@action" -msgid "Connect via Network" -msgstr "Connect via Network" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 -msgctxt "@info:status" -msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 -msgctxt "@item:inlistbox" -msgid "SolidWorks part file" -msgstr "SolidWorks part file" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 -msgctxt "@item:inlistbox" -msgid "SolidWorks assembly file" -msgstr "SolidWorks assembly file" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 -msgid "Configure" -msgstr "Configure" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 -#, python-format -msgctxt "@info:status" -msgid "Error while starting %s!" -msgstr "Error while starting %s!" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 -msgid "Modify G-Code" -msgstr "Modify G-Code" - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 -msgctxt "@info" -msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "Cura collects anonymised slicing statistics. You can disable this in the preferences." - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 -msgctxt "@action:button" -msgid "Dismiss" -msgstr "Dismiss" - -#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura 15.04 profiles" -msgstr "Cura 15.04 profiles" - -#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "G-code File" -msgstr "G-code File" - -#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 -msgctxt "@info:status" -msgid "Cura does not accurately display layers when Wire Printing is enabled" -msgstr "Cura does not accurately display layers when Wire Printing is enabled" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "JPG Image" -msgstr "JPG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "JPEG Image" -msgstr "JPEG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:22 -msgctxt "@item:inlistbox" -msgid "PNG Image" -msgstr "PNG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:26 -msgctxt "@item:inlistbox" -msgid "BMP Image" -msgstr "BMP Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "GIF Image" -msgstr "GIF Image" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 -msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "The selected material is incompatible with the selected machine or configuration." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to slice with the current settings. The following settings have errors: {0}" -msgstr "Unable to slice with the current settings. The following settings have errors: {0}" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 -msgctxt "@info:status" -msgid "Unable to slice because the prime tower or prime position(s) are invalid." -msgstr "Unable to slice because the prime tower or prime position(s) are invalid." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 -msgctxt "@info:status" -msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." -msgstr "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:65 -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 -msgctxt "@info:status" -msgid "Processing Layers" -msgstr "Processing Layers" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 -msgctxt "@label" -msgid "Per Model Settings" -msgstr "Per Model Settings" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:15 -msgctxt "@info:tooltip" -msgid "Configure Per Model Settings" -msgstr "Configure Per Model Settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 -msgctxt "@title:tab" -msgid "Recommended" -msgstr "Recommended" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 -msgctxt "@title:tab" -msgid "Custom" -msgstr "Custom" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:30 -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:36 -msgctxt "@item:inlistbox" -msgid "3MF File" -msgstr "3MF File" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 -msgctxt "@label" -msgid "Nozzle" -msgstr "Nozzle" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 -msgid "Browse plugins" -msgstr "Browse plugins" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 -msgctxt "@window:title" -msgid "Plugin browser" -msgstr "Plugin browser" - -#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 -msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solid" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "G File" -msgstr "G File" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:254 -msgctxt "@info:status" -msgid "Parsing G-code" -msgstr "Parsing G-code" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 -msgctxt "@info:generic" -msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." -msgstr "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." - -#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura Profile" -msgstr "Cura Profile" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "3MF file" -msgstr "3MF file" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:38 -msgctxt "@item:inlistbox" -msgid "Cura Project 3MF file" -msgstr "Cura Project 3MF file" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 -msgctxt "@action" -msgid "Select upgrades" -msgstr "Select upgrades" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py:12 -msgctxt "@action" -msgid "Upgrade Firmware" -msgstr "Upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py:14 -msgctxt "@action" -msgid "Checkup" -msgstr "Checkup" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.py:15 -msgctxt "@action" -msgid "Level build plate" -msgstr "Level build plate" - -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 -#, python-brace-format -msgctxt "@label" -msgid "Pre-sliced file {0}" -msgstr "Pre-sliced file {0}" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 -msgctxt "@item:material" -msgid "No material loaded" -msgstr "No material loaded" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 -msgctxt "@item:material" -msgid "Unknown material" -msgstr "Unknown material" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:30 -msgctxt "@info:status" -msgid "Finding new location for objects" -msgstr "Finding new location for objects" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 -msgctxt "@info:status" -msgid "Unable to find a location within the build volume for all objects" -msgstr "Unable to find a location within the build volume for all objects" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 -msgctxt "@title:window" -msgid "File Already Exists" -msgstr "File Already Exists" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 -#, python-brace-format -msgctxt "@label" -msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "The file {0} already exists. Are you sure you want to overwrite it?" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 -msgctxt "@label" -msgid "Custom" -msgstr "Custom" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 -msgctxt "@label" -msgid "Custom Material" -msgstr "Custom Material" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 -msgctxt "@info:status Has a cancel button next to it." -msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "The selected material diameter causes the material to become incompatible with the current printer." - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action:button" -msgid "Undo" -msgstr "Undo" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action" -msgid "Undo changing the material diameter." -msgstr "Undo changing the material diameter." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: {1}" -msgstr "Failed to export profile to {0}: {1}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Failed to export profile to {0}: Writer plugin reported failure." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 -#, python-brace-format -msgctxt "@info:status" -msgid "Exported profile to {0}" -msgstr "Exported profile to {0}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Failed to import profile from {0}: {1}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 -#, python-brace-format -msgctxt "@info:status" -msgid "Successfully imported profile {0}" -msgstr "Successfully imported profile {0}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 -#, python-brace-format -msgctxt "@info:status" -msgid "Profile {0} has an unknown file type or is corrupted." -msgstr "Profile {0} has an unknown file type or is corrupted." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 -msgctxt "@label" -msgid "Custom profile" -msgstr "Custom profile" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 -msgctxt "@info:status" -msgid "Profile is missing a quality type." -msgstr "Profile is missing a quality type." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not find a quality type {0} for the current configuration." -msgstr "Could not find a quality type {0} for the current configuration." - -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 -msgctxt "@info:status" -msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." -msgstr "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." - -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 -msgctxt "@info:status" -msgid "Multiplying and placing objects" -msgstr "Multiplying and placing objects" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 -msgctxt "@title:window" -msgid "Crash Report" -msgstr "Crash Report" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 -msgctxt "@label" -msgid "" -"

A fatal exception has occurred that we could not recover from!

\n" -"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -" " -msgstr "" -"

A fatal exception has occurred that we could not recover from!

\n" -"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -" " - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 -msgctxt "@action:button" -msgid "Open Web Page" -msgstr "Open Web Page" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 -msgctxt "@info:progress" -msgid "Loading machines..." -msgstr "Loading machines..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 -msgctxt "@info:progress" -msgid "Setting up scene..." -msgstr "Setting up scene..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 -msgctxt "@info:progress" -msgid "Loading interface..." -msgstr "Loading interface..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 -#, python-format -msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." -msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "%(width).1f x %(depth).1f x %(height).1f mm" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 -#, python-brace-format -msgctxt "@info:status" -msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" -msgstr "Only one G-code file can be loaded at a time. Skipped importing {0}" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 -#, python-brace-format -msgctxt "@info:status" -msgid "Can't open any other file if G-code is loading. Skipped importing {0}" -msgstr "Can't open any other file if G-code is loading. Skipped importing {0}" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:59 -msgctxt "@title" -msgid "Machine Settings" -msgstr "Machine Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:77 -msgctxt "@title:tab" -msgid "Printer" -msgstr "Printer" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:96 -msgctxt "@label" -msgid "Printer Settings" -msgstr "Printer Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:107 -msgctxt "@label" -msgid "X (Width)" -msgstr "X (Width)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:108 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 -msgctxt "@label" -msgid "mm" -msgstr "mm" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:117 -msgctxt "@label" -msgid "Y (Depth)" -msgstr "Y (Depth)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:127 -msgctxt "@label" -msgid "Z (Height)" -msgstr "Z (Height)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 -msgctxt "@label" -msgid "Build plate shape" -msgstr "Build plate shape" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 -msgctxt "@option:check" -msgid "Origin at center" -msgstr "Origin at center" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 -msgctxt "@option:check" -msgid "Heated bed" -msgstr "Heated bed" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 -msgctxt "@label" -msgid "Gcode flavor" -msgstr "Gcode flavor" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 -msgctxt "@label" -msgid "Printhead Settings" -msgstr "Printhead Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:190 -msgctxt "@label" -msgid "X min" -msgstr "X min" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 -msgctxt "@tooltip" -msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 -msgctxt "@label" -msgid "Y min" -msgstr "Y min" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 -msgctxt "@tooltip" -msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 -msgctxt "@label" -msgid "X max" -msgstr "X max" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 -msgctxt "@tooltip" -msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 -msgctxt "@label" -msgid "Y max" -msgstr "Y max" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 -msgctxt "@tooltip" -msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 -msgctxt "@label" -msgid "Gantry height" -msgstr "Gantry height" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 -msgctxt "@tooltip" -msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 -msgctxt "@label" -msgid "Number of Extruders" -msgstr "Number of Extruders" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 -msgctxt "@tooltip" -msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 -msgctxt "@label" -msgid "Material diameter" -msgstr "Material diameter" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 -msgctxt "@label" -msgid "Nozzle size" -msgstr "Nozzle size" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 -msgctxt "@label" -msgid "Start Gcode" -msgstr "Start Gcode" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very start." -msgstr "Gcode commands to be executed at the very start." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 -msgctxt "@label" -msgid "End Gcode" -msgstr "End Gcode" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very end." -msgstr "Gcode commands to be executed at the very end." - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 -msgctxt "@label" -msgid "Nozzle Settings" -msgstr "Nozzle Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 -msgctxt "@label" -msgid "Nozzle offset X" -msgstr "Nozzle offset X" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 -msgctxt "@label" -msgid "Nozzle offset Y" -msgstr "Nozzle offset Y" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 -msgctxt "@label" -msgid "Extruder Start Gcode" -msgstr "Extruder Start Gcode" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 -msgctxt "@label" -msgid "Extruder End Gcode" -msgstr "Extruder End Gcode" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D Settings" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Save" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Print to: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Extruder Temperature: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Bed Temperature: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Print" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 -msgctxt "@label" -msgid "Changelog" -msgstr "Changelog" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 -msgctxt "@action:button" -msgid "Close" -msgstr "Close" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:22 -msgctxt "@title:window" -msgid "Firmware Update" -msgstr "Firmware Update" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:42 -msgctxt "@label" -msgid "Firmware update completed." -msgstr "Firmware update completed." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:47 -msgctxt "@label" -msgid "Starting firmware update, this may take a while." -msgstr "Starting firmware update, this may take a while." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:52 -msgctxt "@label" -msgid "Updating firmware." -msgstr "Updating firmware." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:61 -msgctxt "@label" -msgid "Firmware update failed due to an unknown error." -msgstr "Firmware update failed due to an unknown error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:64 -msgctxt "@label" -msgid "Firmware update failed due to an communication error." -msgstr "Firmware update failed due to an communication error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:67 -msgctxt "@label" -msgid "Firmware update failed due to an input/output error." -msgstr "Firmware update failed due to an input/output error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:70 -msgctxt "@label" -msgid "Firmware update failed due to missing firmware." -msgstr "Firmware update failed due to missing firmware." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:73 -msgctxt "@label" -msgid "Unknown error code: %1" -msgstr "Unknown error code: %1" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 -msgctxt "@title:window" -msgid "Connect to Networked Printer" -msgstr "Connect to Networked Printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 -msgctxt "@label" -msgid "" -"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" -"\n" -"Select your printer from the list below:" -msgstr "" -"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" -"\n" -"Select your printer from the list below:" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 -msgctxt "@action:button" -msgid "Add" -msgstr "Add" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 -msgctxt "@action:button" -msgid "Edit" -msgstr "Edit" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 -msgctxt "@action:button" -msgid "Remove" -msgstr "Remove" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 -msgctxt "@action:button" -msgid "Refresh" -msgstr "Refresh" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 -msgctxt "@label" -msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "If your printer is not listed, read the network printing troubleshooting guide" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 -msgctxt "@label" -msgid "Type" -msgstr "Type" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 -msgctxt "@label" -msgid "Ultimaker 3" -msgstr "Ultimaker 3" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 -msgctxt "@label" -msgid "Ultimaker 3 Extended" -msgstr "Ultimaker 3 Extended" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 -msgctxt "@label" -msgid "Unknown" -msgstr "Unknown" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 -msgctxt "@label" -msgid "Firmware version" -msgstr "Firmware version" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 -msgctxt "@label" -msgid "Address" -msgstr "Address" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 -msgctxt "@label" -msgid "The printer at this address has not yet responded." -msgstr "The printer at this address has not yet responded." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 -msgctxt "@action:button" -msgid "Connect" -msgstr "Connect" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 -msgctxt "@title:window" -msgid "Printer Address" -msgstr "Printer Address" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 -msgctxt "@alabel" -msgid "Enter the IP address or hostname of your printer on the network." -msgstr "Enter the IP address or hostname of your printer on the network." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 -msgctxt "@action:button" -msgid "Ok" -msgstr "Ok" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 -msgctxt "@info:tooltip" -msgid "Connect to a printer" -msgstr "Connect to a printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 -msgctxt "@info:tooltip" -msgid "Load the configuration of the printer into Cura" -msgstr "Load the configuration of the printer into Cura" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 -msgctxt "@action:button" -msgid "Activate Configuration" -msgstr "Activate Configuration" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 -msgctxt "@title:window" -msgid "Cura SolidWorks Plugin Configuration" -msgstr "Cura SolidWorks Plugin Configuration" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 -msgctxt "@action:label" -msgid "Default quality of the exported STL:" -msgstr "Default quality of the exported STL:" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always ask" -msgstr "Always ask" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Fine quality" -msgstr "Always use Fine quality" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Coarse quality" -msgstr "Always use Coarse quality" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:181 -msgctxt "@action:button" -msgid "OK" -msgstr "OK" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 -msgctxt "@title:window" -msgid "Import SolidWorks File as STL..." -msgstr "Import SolidWorks File as STL..." - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 -msgctxt "@info:tooltip" -msgid "Quality of the Exported STL" -msgstr "Quality of the Exported STL" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 -msgctxt "@action:label" -msgid "Quality" -msgstr "Quality" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Coarse" -msgstr "Coarse" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Fine" -msgstr "Fine" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 -msgctxt "@text:window" -msgid "Remember my choice" -msgstr "Remember my choice" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 -msgctxt "@title:window" -msgid "Post Processing Plugin" -msgstr "Post Processing Plugin" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:49 -msgctxt "@label" -msgid "Post Processing Scripts" -msgstr "Post Processing Scripts" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:218 -msgctxt "@action" -msgid "Add a script" -msgstr "Add a script" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:264 -msgctxt "@label" -msgid "Settings" -msgstr "Settings" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:456 -msgctxt "@info:tooltip" -msgid "Change active post-processing scripts" -msgstr "Change active post-processing scripts" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "View Mode: Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 -msgctxt "@label" -msgid "Color scheme" -msgstr "Color scheme" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 -msgctxt "@label:listbox" -msgid "Material Color" -msgstr "Material Color" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 -msgctxt "@label:listbox" -msgid "Line Type" -msgstr "Line Type" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 -msgctxt "@label" -msgid "Compatibility Mode" -msgstr "Compatibility Mode" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 -msgctxt "@label" -msgid "Show Travels" -msgstr "Show Travels" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 -msgctxt "@label" -msgid "Show Helpers" -msgstr "Show Helpers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 -msgctxt "@label" -msgid "Show Shell" -msgstr "Show Shell" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 -msgctxt "@label" -msgid "Show Infill" -msgstr "Show Infill" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 -msgctxt "@label" -msgid "Only Show Top Layers" -msgstr "Only Show Top Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 -msgctxt "@label" -msgid "Show 5 Detailed Layers On Top" -msgstr "Show 5 Detailed Layers On Top" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 -msgctxt "@label" -msgid "Top / Bottom" -msgstr "Top / Bottom" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 -msgctxt "@label" -msgid "Inner Wall" -msgstr "Inner Wall" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 -msgctxt "@title:window" -msgid "Convert Image..." -msgstr "Convert Image..." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 -msgctxt "@info:tooltip" -msgid "The maximum distance of each pixel from \"Base.\"" -msgstr "The maximum distance of each pixel from \"Base.\"" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 -msgctxt "@action:label" -msgid "Height (mm)" -msgstr "Height (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:56 -msgctxt "@info:tooltip" -msgid "The base height from the build plate in millimeters." -msgstr "The base height from the build plate in millimeters." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:61 -msgctxt "@action:label" -msgid "Base (mm)" -msgstr "Base (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:79 -msgctxt "@info:tooltip" -msgid "The width in millimeters on the build plate." -msgstr "The width in millimeters on the build plate." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:84 -msgctxt "@action:label" -msgid "Width (mm)" -msgstr "Width (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 -msgctxt "@info:tooltip" -msgid "The depth in millimeters on the build plate" -msgstr "The depth in millimeters on the build plate" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 -msgctxt "@action:label" -msgid "Depth (mm)" -msgstr "Depth (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:126 -msgctxt "@info:tooltip" -msgid "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." -msgstr "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Lighter is higher" -msgstr "Lighter is higher" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Darker is higher" -msgstr "Darker is higher" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 -msgctxt "@info:tooltip" -msgid "The amount of smoothing to apply to the image." -msgstr "The amount of smoothing to apply to the image." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 -msgctxt "@action:label" -msgid "Smoothing" -msgstr "Smoothing" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 -msgctxt "@action:button" -msgid "Select settings" -msgstr "Select settings" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 -msgctxt "@title:window" -msgid "Select Settings to Customize for this model" -msgstr "Select Settings to Customize for this model" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 -msgctxt "@label:textbox" -msgid "Filter..." -msgstr "Filter..." - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 -msgctxt "@label:checkbox" -msgid "Show all" -msgstr "Show all" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 -msgctxt "@title:window" -msgid "Open Project" -msgstr "Open Project" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:54 -msgctxt "@action:ComboBox option" -msgid "Update existing" -msgstr "Update existing" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:55 -msgctxt "@action:ComboBox option" -msgid "Create new" -msgstr "Create new" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:66 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:70 -msgctxt "@action:title" -msgid "Summary - Cura Project" -msgstr "Summary - Cura Project" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:88 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:88 -msgctxt "@action:label" -msgid "Printer settings" -msgstr "Printer settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:104 -msgctxt "@info:tooltip" -msgid "How should the conflict in the machine be resolved?" -msgstr "How should the conflict in the machine be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:124 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:97 -msgctxt "@action:label" -msgid "Type" -msgstr "Type" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:140 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:197 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:289 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:112 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:188 -msgctxt "@action:label" -msgid "Name" -msgstr "Name" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:161 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:164 -msgctxt "@action:label" -msgid "Profile settings" -msgstr "Profile settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:177 -msgctxt "@info:tooltip" -msgid "How should the conflict in the profile be resolved?" -msgstr "How should the conflict in the profile be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:212 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:172 -msgctxt "@action:label" -msgid "Not in profile" -msgstr "Not in profile" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:217 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:177 -msgctxt "@action:label" -msgid "%1 override" -msgid_plural "%1 overrides" -msgstr[0] "%1 override" -msgstr[1] "%1 overrides" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:228 -msgctxt "@action:label" -msgid "Derivative from" -msgstr "Derivative from" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:233 -msgctxt "@action:label" -msgid "%1, %2 override" -msgid_plural "%1, %2 overrides" -msgstr[0] "%1, %2 override" -msgstr[1] "%1, %2 overrides" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:249 -msgctxt "@action:label" -msgid "Material settings" -msgstr "Material settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:265 -msgctxt "@info:tooltip" -msgid "How should the conflict in the material be resolved?" -msgstr "How should the conflict in the material be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:308 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:207 -msgctxt "@action:label" -msgid "Setting visibility" -msgstr "Setting visibility" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:317 -msgctxt "@action:label" -msgid "Mode" -msgstr "Mode" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:332 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:216 -msgctxt "@action:label" -msgid "Visible settings:" -msgstr "Visible settings:" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:337 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:221 -msgctxt "@action:label" -msgid "%1 out of %2" -msgstr "%1 out of %2" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:363 -msgctxt "@action:warning" -msgid "Loading a project will clear all models on the buildplate" -msgstr "Loading a project will clear all models on the buildplate" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:381 -msgctxt "@action:button" -msgid "Open" -msgstr "Open" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 -msgctxt "@title:window" -msgid "Find & Update plugins" -msgstr "Find & Update plugins" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 -msgctxt "@label" -msgid "Here you can find a list of Third Party plugins." -msgstr "Here you can find a list of Third Party plugins." - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "Upgrade" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 -msgctxt "@action:button" -msgid "Installed" -msgstr "Installed" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 -msgctxt "@action:button" -msgid "Download" -msgstr "Download" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 -msgctxt "@title" -msgid "Select Printer Upgrades" -msgstr "Select Printer Upgrades" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker 2." -msgstr "Please select any upgrades made to this Ultimaker 2." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Olsson Block" -msgstr "Olsson Block" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:27 -msgctxt "@title" -msgid "Build Plate Leveling" -msgstr "Build Plate Leveling" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:38 -msgctxt "@label" -msgid "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." -msgstr "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:47 -msgctxt "@label" -msgid "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." -msgstr "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:62 -msgctxt "@action:button" -msgid "Start Build Plate Leveling" -msgstr "Start Build Plate Leveling" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:74 -msgctxt "@action:button" -msgid "Move to Next Position" -msgstr "Move to Next Position" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:27 -msgctxt "@title" -msgid "Upgrade Firmware" -msgstr "Upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:38 -msgctxt "@label" -msgid "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." -msgstr "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:48 -msgctxt "@label" -msgid "The firmware shipping with new printers works, but new versions tend to have more features and improvements." -msgstr "The firmware shipping with new printers works, but new versions tend to have more features and improvements." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:62 -msgctxt "@action:button" -msgid "Automatically upgrade Firmware" -msgstr "Automatically upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:72 -msgctxt "@action:button" -msgid "Upload custom Firmware" -msgstr "Upload custom Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:83 -msgctxt "@title:window" -msgid "Select custom firmware" -msgstr "Select custom firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Please select any upgrades made to this Ultimaker Original" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Heated Build Plate (official kit or self-built)" -msgstr "Heated Build Plate (official kit or self-built)" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:27 -msgctxt "@title" -msgid "Check Printer" -msgstr "Check Printer" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:39 -msgctxt "@label" -msgid "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" -msgstr "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:53 -msgctxt "@action:button" -msgid "Start Printer Check" -msgstr "Start Printer Check" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 -msgctxt "@label" -msgid "Connection: " -msgstr "Connection: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Connected" -msgstr "Connected" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Not connected" -msgstr "Not connected" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 -msgctxt "@label" -msgid "Min endstop X: " -msgstr "Min endstop X: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -msgctxt "@info:status" -msgid "Works" -msgstr "Works" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:173 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Not checked" -msgstr "Not checked" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 -msgctxt "@label" -msgid "Min endstop Y: " -msgstr "Min endstop Y: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 -msgctxt "@label" -msgid "Min endstop Z: " -msgstr "Min endstop Z: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 -msgctxt "@label" -msgid "Nozzle temperature check: " -msgstr "Nozzle temperature check: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Stop Heating" -msgstr "Stop Heating" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Start Heating" -msgstr "Start Heating" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:223 -msgctxt "@label" -msgid "Build plate temperature check:" -msgstr "Build plate temperature check:" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Checked" -msgstr "Checked" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:284 -msgctxt "@label" -msgid "Everything is in order! You're done with your CheckUp." -msgstr "Everything is in order! You're done with your CheckUp." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 -msgctxt "@label:MonitorStatus" -msgid "Not connected to a printer" -msgstr "Not connected to a printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 -msgctxt "@label:MonitorStatus" -msgid "Printer does not accept commands" -msgstr "Printer does not accept commands" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 -msgctxt "@label:MonitorStatus" -msgid "In maintenance. Please check the printer" -msgstr "In maintenance. Please check the printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 -msgctxt "@label:MonitorStatus" -msgid "Lost connection with the printer" -msgstr "Lost connection with the printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 -msgctxt "@label:MonitorStatus" -msgid "Printing..." -msgstr "Printing..." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 -msgctxt "@label:MonitorStatus" -msgid "Paused" -msgstr "Paused" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 -msgctxt "@label:MonitorStatus" -msgid "Preparing..." -msgstr "Preparing..." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 -msgctxt "@label:MonitorStatus" -msgid "Please remove the print" -msgstr "Please remove the print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 -msgctxt "@label:" -msgid "Resume" -msgstr "Resume" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 -msgctxt "@label:" -msgid "Pause" -msgstr "Pause" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 -msgctxt "@label:" -msgid "Abort Print" -msgstr "Abort Print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 -msgctxt "@window:title" -msgid "Abort print" -msgstr "Abort print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 -msgctxt "@label" -msgid "Are you sure you want to abort the print?" -msgstr "Are you sure you want to abort the print?" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:15 -msgctxt "@title:window" -msgid "Discard or Keep changes" -msgstr "Discard or Keep changes" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:57 -msgctxt "@text:window" -msgid "" -"You have customized some profile settings.\n" -"Would you like to keep or discard those settings?" -msgstr "" -"You have customized some profile settings.\n" -"Would you like to keep or discard those settings?" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 -msgctxt "@title:column" -msgid "Profile settings" -msgstr "Profile settings" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:117 -msgctxt "@title:column" -msgid "Default" -msgstr "Default" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:124 -msgctxt "@title:column" -msgid "Customized" -msgstr "Customized" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 -msgctxt "@option:discardOrKeep" -msgid "Always ask me this" -msgstr "Always ask me this" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 -msgctxt "@option:discardOrKeep" -msgid "Discard and never ask again" -msgstr "Discard and never ask again" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 -msgctxt "@option:discardOrKeep" -msgid "Keep and never ask again" -msgstr "Keep and never ask again" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:196 -msgctxt "@action:button" -msgid "Discard" -msgstr "Discard" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:209 -msgctxt "@action:button" -msgid "Keep" -msgstr "Keep" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:222 -msgctxt "@action:button" -msgid "Create New Profile" -msgstr "Create New Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:44 -msgctxt "@title" -msgid "Information" -msgstr "Information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 -msgctxt "@label" -msgid "Display Name" -msgstr "Display Name" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 -msgctxt "@label" -msgid "Brand" -msgstr "Brand" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:92 -msgctxt "@label" -msgid "Material Type" -msgstr "Material Type" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:105 -msgctxt "@label" -msgid "Color" -msgstr "Color" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:139 -msgctxt "@label" -msgid "Properties" -msgstr "Properties" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:141 -msgctxt "@label" -msgid "Density" -msgstr "Density" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:156 -msgctxt "@label" -msgid "Diameter" -msgstr "Diameter" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:185 -msgctxt "@label" -msgid "Filament Cost" -msgstr "Filament Cost" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:201 -msgctxt "@label" -msgid "Filament weight" -msgstr "Filament weight" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:218 -msgctxt "@label" -msgid "Filament length" -msgstr "Filament length" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:227 -msgctxt "@label" -msgid "Cost per Meter" -msgstr "Cost per Meter" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:241 -msgctxt "@label" -msgid "This material is linked to %1 and shares some of its properties." -msgstr "This material is linked to %1 and shares some of its properties." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:248 -msgctxt "@label" -msgid "Unlink Material" -msgstr "Unlink Material" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:259 -msgctxt "@label" -msgid "Description" -msgstr "Description" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:272 -msgctxt "@label" -msgid "Adhesion Information" -msgstr "Adhesion Information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:298 -msgctxt "@label" -msgid "Print settings" -msgstr "Print settings" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 -msgctxt "@title:tab" -msgid "Setting Visibility" -msgstr "Setting Visibility" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 -msgctxt "@label:textbox" -msgid "Check all" -msgstr "Check all" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 -msgctxt "@info:status" -msgid "Calculated" -msgstr "Calculated" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 -msgctxt "@title:column" -msgid "Setting" -msgstr "Setting" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:60 -msgctxt "@title:column" -msgid "Profile" -msgstr "Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:67 -msgctxt "@title:column" -msgid "Current" -msgstr "Current" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:75 -msgctxt "@title:column" -msgid "Unit" -msgstr "Unit" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 -msgctxt "@title:tab" -msgid "General" -msgstr "General" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:128 -msgctxt "@label" -msgid "Interface" -msgstr "Interface" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:139 -msgctxt "@label" -msgid "Language:" -msgstr "Language:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 -msgctxt "@label" -msgid "Currency:" -msgstr "Currency:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 -msgctxt "@label" -msgid "Theme:" -msgstr "Theme:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 -msgctxt "@label" -msgid "You will need to restart the application for these changes to have effect." -msgstr "You will need to restart the application for these changes to have effect." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 -msgctxt "@info:tooltip" -msgid "Slice automatically when changing settings." -msgstr "Slice automatically when changing settings." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 -msgctxt "@option:check" -msgid "Slice automatically" -msgstr "Slice automatically" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 -msgctxt "@label" -msgid "Viewport behavior" -msgstr "Viewport behavior" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 -msgctxt "@info:tooltip" -msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." -msgstr "Highlight unsupported areas of the model in red. Without support these areas will not print properly." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 -msgctxt "@option:check" -msgid "Display overhang" -msgstr "Display overhang" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 -msgctxt "@info:tooltip" -msgid "Moves the camera so the model is in the center of the view when a model is selected" -msgstr "Moves the camera so the model is in the center of the view when a model is selected" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 -msgctxt "@action:button" -msgid "Center camera when item is selected" -msgstr "Center camera when item is selected" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 -msgctxt "@info:tooltip" -msgid "Should the default zoom behavior of cura be inverted?" -msgstr "Should the default zoom behavior of cura be inverted?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 -msgctxt "@action:button" -msgid "Invert the direction of camera zoom." -msgstr "Invert the direction of camera zoom." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 -msgctxt "@info:tooltip" -msgid "Should zooming move in the direction of the mouse?" -msgstr "Should zooming move in the direction of the mouse?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 -msgctxt "@action:button" -msgid "Zoom toward mouse direction" -msgstr "Zoom toward mouse direction" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved so that they no longer intersect?" -msgstr "Should models on the platform be moved so that they no longer intersect?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 -msgctxt "@option:check" -msgid "Ensure models are kept apart" -msgstr "Ensure models are kept apart" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved down to touch the build plate?" -msgstr "Should models on the platform be moved down to touch the build plate?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 -msgctxt "@option:check" -msgid "Automatically drop models to the build plate" -msgstr "Automatically drop models to the build plate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 -msgctxt "@info:tooltip" -msgid "Show caution message in gcode reader." -msgstr "Show caution message in gcode reader." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 -msgctxt "@option:check" -msgid "Caution message in gcode reader" -msgstr "Caution message in gcode reader" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 -msgctxt "@info:tooltip" -msgid "Should layer be forced into compatibility mode?" -msgstr "Should layer be forced into compatibility mode?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 -msgctxt "@option:check" -msgid "Force layer view compatibility mode (restart required)" -msgstr "Force layer view compatibility mode (restart required)" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 -msgctxt "@label" -msgid "Opening and saving files" -msgstr "Opening and saving files" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 -msgctxt "@info:tooltip" -msgid "Should models be scaled to the build volume if they are too large?" -msgstr "Should models be scaled to the build volume if they are too large?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 -msgctxt "@option:check" -msgid "Scale large models" -msgstr "Scale large models" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 -msgctxt "@info:tooltip" -msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" -msgstr "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 -msgctxt "@option:check" -msgid "Scale extremely small models" -msgstr "Scale extremely small models" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 -msgctxt "@info:tooltip" -msgid "Should a prefix based on the printer name be added to the print job name automatically?" -msgstr "Should a prefix based on the printer name be added to the print job name automatically?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 -msgctxt "@option:check" -msgid "Add machine prefix to job name" -msgstr "Add machine prefix to job name" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 -msgctxt "@info:tooltip" -msgid "Should a summary be shown when saving a project file?" -msgstr "Should a summary be shown when saving a project file?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 -msgctxt "@option:check" -msgid "Show summary dialog when saving project" -msgstr "Show summary dialog when saving project" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 -msgctxt "@info:tooltip" -msgid "Default behavior when opening a project file" -msgstr "Default behavior when opening a project file" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 -msgctxt "@window:text" -msgid "Default behavior when opening a project file: " -msgstr "Default behavior when opening a project file: " - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 -msgctxt "@option:openProject" -msgid "Always ask" -msgstr "Always ask" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 -msgctxt "@option:openProject" -msgid "Always open as a project" -msgstr "Always open as a project" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 -msgctxt "@option:openProject" -msgid "Always import models" -msgstr "Always import models" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 -msgctxt "@info:tooltip" -msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." -msgstr "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 -msgctxt "@label" -msgid "Override Profile" -msgstr "Override Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 -msgctxt "@label" -msgid "Privacy" -msgstr "Privacy" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 -msgctxt "@info:tooltip" -msgid "Should Cura check for updates when the program is started?" -msgstr "Should Cura check for updates when the program is started?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 -msgctxt "@option:check" -msgid "Check for updates on start" -msgstr "Check for updates on start" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 -msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 -msgctxt "@option:check" -msgid "Send (anonymous) print information" -msgstr "Send (anonymous) print information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 -msgctxt "@title:tab" -msgid "Printers" -msgstr "Printers" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:37 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:51 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:137 -msgctxt "@action:button" -msgid "Activate" -msgstr "Activate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:57 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:102 -msgctxt "@action:button" -msgid "Rename" -msgstr "Rename" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:151 -msgctxt "@label" -msgid "Printer type:" -msgstr "Printer type:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:160 -msgctxt "@label" -msgid "Connection:" -msgstr "Connection:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:166 -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:52 -msgctxt "@info:status" -msgid "The printer is not connected." -msgstr "The printer is not connected." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:172 -msgctxt "@label" -msgid "State:" -msgstr "State:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:192 -msgctxt "@label:MonitorStatus" -msgid "Waiting for someone to clear the build plate" -msgstr "Waiting for someone to clear the build plate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:201 -msgctxt "@label:MonitorStatus" -msgid "Waiting for a printjob" -msgstr "Waiting for a printjob" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 -msgctxt "@title:tab" -msgid "Profiles" -msgstr "Profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Protected profiles" -msgstr "Protected profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Custom profiles" -msgstr "Custom profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:64 -msgctxt "@label" -msgid "Create" -msgstr "Create" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:80 -msgctxt "@label" -msgid "Duplicate" -msgstr "Duplicate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:113 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:201 -msgctxt "@action:button" -msgid "Import" -msgstr "Import" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:119 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:212 -msgctxt "@action:button" -msgid "Export" -msgstr "Export" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:126 -msgctxt "@label %1 is printer name" -msgid "Printer: %1" -msgstr "Printer: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:165 -msgctxt "@action:button" -msgid "Update profile with current settings/overrides" -msgstr "Update profile with current settings/overrides" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:173 -msgctxt "@action:button" -msgid "Discard current changes" -msgstr "Discard current changes" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:190 -msgctxt "@action:label" -msgid "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." -msgstr "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:197 -msgctxt "@action:label" -msgid "Your current settings match the selected profile." -msgstr "Your current settings match the selected profile." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:215 -msgctxt "@title:tab" -msgid "Global Settings" -msgstr "Global Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:258 -msgctxt "@title:window" -msgid "Rename Profile" -msgstr "Rename Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:271 -msgctxt "@title:window" -msgid "Create Profile" -msgstr "Create Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:285 -msgctxt "@title:window" -msgid "Duplicate Profile" -msgstr "Duplicate Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:299 -msgctxt "@window:title" -msgid "Import Profile" -msgstr "Import Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:307 -msgctxt "@title:window" -msgid "Import Profile" -msgstr "Import Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:335 -msgctxt "@title:window" -msgid "Export Profile" -msgstr "Export Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 -msgctxt "@title:tab" -msgid "Materials" -msgstr "Materials" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:116 -msgctxt "@action:label %1 is printer name, %2 is how this printer names variants, %3 is variant name" -msgid "Printer: %1, %2: %3" -msgstr "Printer: %1, %2: %3" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:120 -msgctxt "@action:label %1 is printer name" -msgid "Printer: %1" -msgstr "Printer: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:149 -msgctxt "@action:button" -msgid "Create" -msgstr "Create" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:168 -msgctxt "@action:button" -msgid "Duplicate" -msgstr "Duplicate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:311 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:319 -msgctxt "@title:window" -msgid "Import Material" -msgstr "Import Material" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" -msgid "Could not import material %1: %2" -msgstr "Could not import material %1: %2" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" -msgid "Successfully imported material %1" -msgstr "Successfully imported material %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 -msgctxt "@title:window" -msgid "Export Material" -msgstr "Export Material" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" -msgid "Failed to export material to %1: %2" -msgstr "Failed to export material to %1: %2" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" -msgid "Successfully exported material to %1" -msgstr "Successfully exported material to %1" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 -msgctxt "@title:window" -msgid "Add Printer" -msgstr "Add Printer" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:185 -msgctxt "@label" -msgid "Printer Name:" -msgstr "Printer Name:" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:208 -msgctxt "@action:button" -msgid "Add Printer" -msgstr "Add Printer" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Outer Wall" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Inner Walls" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Skin" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Infill" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Support Infill" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Support Interface" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Support" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Travel" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Retractions" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Other" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 -msgctxt "@title:window" -msgid "About Cura" -msgstr "About Cura" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:56 -msgctxt "@label" -msgid "End-to-end solution for fused filament 3D printing." -msgstr "End-to-end solution for fused filament 3D printing." - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:69 -msgctxt "@info:credit" -msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" -"Cura proudly uses the following open source projects:" -msgstr "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" -"Cura proudly uses the following open source projects:" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 -msgctxt "@label" -msgid "Graphical user interface" -msgstr "Graphical user interface" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:119 -msgctxt "@label" -msgid "Application framework" -msgstr "Application framework" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:120 -msgctxt "@label" -msgid "GCode generator" -msgstr "GCode generator" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:121 -msgctxt "@label" -msgid "Interprocess communication library" -msgstr "Interprocess communication library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:123 -msgctxt "@label" -msgid "Programming language" -msgstr "Programming language" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:124 -msgctxt "@label" -msgid "GUI framework" -msgstr "GUI framework" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:125 -msgctxt "@label" -msgid "GUI framework bindings" -msgstr "GUI framework bindings" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:126 -msgctxt "@label" -msgid "C/C++ Binding library" -msgstr "C/C++ Binding library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:127 -msgctxt "@label" -msgid "Data interchange format" -msgstr "Data interchange format" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 -msgctxt "@label" -msgid "Support library for scientific computing" -msgstr "Support library for scientific computing" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 -msgctxt "@label" -msgid "Support library for faster math" -msgstr "Support library for faster math" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:130 -msgctxt "@label" -msgid "Support library for handling STL files" -msgstr "Support library for handling STL files" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:131 -msgctxt "@label" -msgid "Support library for handling 3MF files" -msgstr "Support library for handling 3MF files" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 -msgctxt "@label" -msgid "Serial communication library" -msgstr "Serial communication library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:133 -msgctxt "@label" -msgid "ZeroConf discovery library" -msgstr "ZeroConf discovery library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:134 -msgctxt "@label" -msgid "Polygon clipping library" -msgstr "Polygon clipping library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:136 -msgctxt "@label" -msgid "Font" -msgstr "Font" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:137 -msgctxt "@label" -msgid "SVG icons" -msgstr "SVG icons" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 -msgctxt "@label:textbox" -msgid "Search..." -msgstr "Search..." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 -msgctxt "@action:menu" -msgid "Copy value to all extruders" -msgstr "Copy value to all extruders" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 -msgctxt "@action:menu" -msgid "Hide this setting" -msgstr "Hide this setting" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 -msgctxt "@action:menu" -msgid "Don't show this setting" -msgstr "Don't show this setting" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 -msgctxt "@action:menu" -msgid "Keep this setting visible" -msgstr "Keep this setting visible" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 -msgctxt "@action:menu" -msgid "Configure setting visiblity..." -msgstr "Configure setting visiblity..." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:123 -msgctxt "@label" -msgid "" -"Some hidden settings use values different from their normal calculated value.\n" -"\n" -"Click to make these settings visible." -msgstr "" -"Some hidden settings use values different from their normal calculated value.\n" -"\n" -"Click to make these settings visible." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 -msgctxt "@label Header for list of settings." -msgid "Affects" -msgstr "Affects" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:67 -msgctxt "@label Header for list of settings." -msgid "Affected By" -msgstr "Affected By" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:157 -msgctxt "@label" -msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders" -msgstr "This setting is always shared between all extruders. Changing it here will change the value for all extruders" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:160 -msgctxt "@label" -msgid "The value is resolved from per-extruder values " -msgstr "The value is resolved from per-extruder values " - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:186 -msgctxt "@label" -msgid "" -"This setting has a value that is different from the profile.\n" -"\n" -"Click to restore the value of the profile." -msgstr "" -"This setting has a value that is different from the profile.\n" -"\n" -"Click to restore the value of the profile." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 -msgctxt "@label" -msgid "" -"This setting is normally calculated, but it currently has an absolute value set.\n" -"\n" -"Click to restore the calculated value." -msgstr "" -"This setting is normally calculated, but it currently has an absolute value set.\n" -"\n" -"Click to restore the calculated value." - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "Print Setup" -msgstr "Print Setup" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "" -"Print Setup disabled\n" -"G-code files cannot be modified" -msgstr "" -"Print Setup disabled\n" -"G-code files cannot be modified" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 -msgctxt "@tooltip" -msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." -msgstr "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 -msgctxt "@tooltip" -msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." -msgstr "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." - -#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:35 -msgctxt "@title:menuitem %1 is the automatically selected material" -msgid "Automatic: %1" -msgstr "Automatic: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:12 -msgctxt "@title:menu menubar:toplevel" -msgid "&View" -msgstr "&View" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 -msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" -msgid "Automatic: %1" -msgstr "Automatic: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 -msgctxt "@label" -msgid "Print Selected Model With:" -msgid_plural "Print Selected Models With:" -msgstr[0] "Print Selected Model With:" -msgstr[1] "Print Selected Models With:" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:83 -msgctxt "@title:window" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "Multiply Selected Model" -msgstr[1] "Multiply Selected Models" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:108 -msgctxt "@label" -msgid "Number of Copies" -msgstr "Number of Copies" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 -msgctxt "@title:menu menubar:file" -msgid "Open &Recent" -msgstr "Open &Recent" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:33 -msgctxt "@info:status" -msgid "No printer connected" -msgstr "No printer connected" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 -msgctxt "@label" -msgid "Hotend" -msgstr "Hotend" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 -msgctxt "@tooltip" -msgid "The current temperature of this extruder." -msgstr "The current temperature of this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 -msgctxt "@tooltip" -msgid "The colour of the material in this extruder." -msgstr "The colour of the material in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 -msgctxt "@tooltip" -msgid "The material in this extruder." -msgstr "The material in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 -msgctxt "@tooltip" -msgid "The nozzle inserted in this extruder." -msgstr "The nozzle inserted in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 -msgctxt "@label" -msgid "Build plate" -msgstr "Build plate" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 -msgctxt "@tooltip" -msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." -msgstr "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 -msgctxt "@tooltip" -msgid "The current temperature of the heated bed." -msgstr "The current temperature of the heated bed." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 -msgctxt "@tooltip of temperature input" -msgid "The temperature to pre-heat the bed to." -msgstr "The temperature to pre-heat the bed to." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button Cancel pre-heating" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button" -msgid "Pre-heat" -msgstr "Pre-heat" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 -msgctxt "@tooltip of pre-heat" -msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." -msgstr "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 -msgctxt "@label" -msgid "Active print" -msgstr "Active print" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 -msgctxt "@label" -msgid "Job Name" -msgstr "Job Name" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 -msgctxt "@label" -msgid "Printing Time" -msgstr "Printing Time" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 -msgctxt "@label" -msgid "Estimated time left" -msgstr "Estimated time left" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:67 -msgctxt "@action:inmenu" -msgid "Toggle Fu&ll Screen" -msgstr "Toggle Fu&ll Screen" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:74 -msgctxt "@action:inmenu menubar:edit" -msgid "&Undo" -msgstr "&Undo" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:84 -msgctxt "@action:inmenu menubar:edit" -msgid "&Redo" -msgstr "&Redo" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:94 -msgctxt "@action:inmenu menubar:file" -msgid "&Quit" -msgstr "&Quit" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:102 -msgctxt "@action:inmenu" -msgid "Configure Cura..." -msgstr "Configure Cura..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:109 -msgctxt "@action:inmenu menubar:printer" -msgid "&Add Printer..." -msgstr "&Add Printer..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:115 -msgctxt "@action:inmenu menubar:printer" -msgid "Manage Pr&inters..." -msgstr "Manage Pr&inters..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:122 -msgctxt "@action:inmenu" -msgid "Manage Materials..." -msgstr "Manage Materials..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:130 -msgctxt "@action:inmenu menubar:profile" -msgid "&Update profile with current settings/overrides" -msgstr "&Update profile with current settings/overrides" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:138 -msgctxt "@action:inmenu menubar:profile" -msgid "&Discard current changes" -msgstr "&Discard current changes" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:150 -msgctxt "@action:inmenu menubar:profile" -msgid "&Create profile from current settings/overrides..." -msgstr "&Create profile from current settings/overrides..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 -msgctxt "@action:inmenu menubar:profile" -msgid "Manage Profiles..." -msgstr "Manage Profiles..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:163 -msgctxt "@action:inmenu menubar:help" -msgid "Show Online &Documentation" -msgstr "Show Online &Documentation" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:171 -msgctxt "@action:inmenu menubar:help" -msgid "Report a &Bug" -msgstr "Report a &Bug" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:179 -msgctxt "@action:inmenu menubar:help" -msgid "&About..." -msgstr "&About..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:186 -msgctxt "@action:inmenu menubar:edit" -msgid "Delete &Selected Model" -msgid_plural "Delete &Selected Models" -msgstr[0] "Delete &Selected Model" -msgstr[1] "Delete &Selected Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:196 -msgctxt "@action:inmenu menubar:edit" -msgid "Center Selected Model" -msgid_plural "Center Selected Models" -msgstr[0] "Center Selected Model" -msgstr[1] "Center Selected Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:205 -msgctxt "@action:inmenu menubar:edit" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "Multiply Selected Model" -msgstr[1] "Multiply Selected Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:214 -msgctxt "@action:inmenu" -msgid "Delete Model" -msgstr "Delete Model" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:222 -msgctxt "@action:inmenu" -msgid "Ce&nter Model on Platform" -msgstr "Ce&nter Model on Platform" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:228 -msgctxt "@action:inmenu menubar:edit" -msgid "&Group Models" -msgstr "&Group Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:238 -msgctxt "@action:inmenu menubar:edit" -msgid "Ungroup Models" -msgstr "Ungroup Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248 -msgctxt "@action:inmenu menubar:edit" -msgid "&Merge Models" -msgstr "&Merge Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258 -msgctxt "@action:inmenu" -msgid "&Multiply Model..." -msgstr "&Multiply Model..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:265 -msgctxt "@action:inmenu menubar:edit" -msgid "&Select All Models" -msgstr "&Select All Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:275 -msgctxt "@action:inmenu menubar:edit" -msgid "&Clear Build Plate" -msgstr "&Clear Build Plate" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:285 -msgctxt "@action:inmenu menubar:file" -msgid "Re&load All Models" -msgstr "Re&load All Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange All Models" -msgstr "Arrange All Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:302 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange Selection" -msgstr "Arrange Selection" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:309 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model Positions" -msgstr "Reset All Model Positions" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:316 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model &Transformations" -msgstr "Reset All Model &Transformations" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:323 -msgctxt "@action:inmenu menubar:file" -msgid "&Open File(s)..." -msgstr "&Open File(s)..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:331 -msgctxt "@action:inmenu menubar:file" -msgid "&New Project..." -msgstr "&New Project..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:338 -msgctxt "@action:inmenu menubar:help" -msgid "Show Engine &Log..." -msgstr "Show Engine &Log..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:346 -msgctxt "@action:inmenu menubar:help" -msgid "Show Configuration Folder" -msgstr "Show Configuration Folder" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:353 -msgctxt "@action:menu" -msgid "Configure setting visibility..." -msgstr "Configure setting visibility..." - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 -msgctxt "@label:PrintjobStatus" -msgid "Please load a 3D model" -msgstr "Please load a 3D model" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 -msgctxt "@label:PrintjobStatus" -msgid "Ready to slice" -msgstr "Ready to slice" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 -msgctxt "@label:PrintjobStatus" -msgid "Slicing..." -msgstr "Slicing..." - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 -msgctxt "@label:PrintjobStatus %1 is target operation" -msgid "Ready to %1" -msgstr "Ready to %1" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 -msgctxt "@label:PrintjobStatus" -msgid "Unable to Slice" -msgstr "Unable to Slice" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 -msgctxt "@label:PrintjobStatus" -msgid "Slicing unavailable" -msgstr "Slicing unavailable" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Prepare" -msgstr "Prepare" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 -msgctxt "@info:tooltip" -msgid "Select the active output device" -msgstr "Select the active output device" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 -msgctxt "@title:window" -msgid "Open file(s)" -msgstr "Open file(s)" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:64 -msgctxt "@text:window" -msgid "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" -msgstr "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:99 -msgctxt "@action:button" -msgid "Import all as models" -msgstr "Import all as models" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:19 -msgctxt "@title:window" -msgid "Cura" -msgstr "Cura" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:85 -msgctxt "@title:menu menubar:toplevel" -msgid "&File" -msgstr "&File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:102 -msgctxt "@action:inmenu menubar:file" -msgid "&Save Selection to File" -msgstr "&Save Selection to File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:111 -msgctxt "@title:menu menubar:file" -msgid "Save &As..." -msgstr "Save &As..." - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:122 -msgctxt "@title:menu menubar:file" -msgid "Save project" -msgstr "Save project" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:145 -msgctxt "@title:menu menubar:toplevel" -msgid "&Edit" -msgstr "&Edit" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:162 -msgctxt "@title:menu" -msgid "&View" -msgstr "&View" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:167 -msgctxt "@title:menu" -msgid "&Settings" -msgstr "&Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:169 -msgctxt "@title:menu menubar:toplevel" -msgid "&Printer" -msgstr "&Printer" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:179 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:191 -msgctxt "@title:menu" -msgid "&Material" -msgstr "&Material" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:180 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:192 -msgctxt "@title:menu" -msgid "&Profile" -msgstr "&Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:184 -msgctxt "@action:inmenu" -msgid "Set as Active Extruder" -msgstr "Set as Active Extruder" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:202 -msgctxt "@title:menu menubar:toplevel" -msgid "E&xtensions" -msgstr "E&xtensions" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:235 -msgctxt "@title:menu menubar:toplevel" -msgid "P&references" -msgstr "P&references" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:243 -msgctxt "@title:menu menubar:toplevel" -msgid "&Help" -msgstr "&Help" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 -msgctxt "@action:button" -msgid "Open File" -msgstr "Open File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "View Mode" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 -msgctxt "@title:tab" -msgid "Settings" -msgstr "Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 -msgctxt "@title:window" -msgid "New project" -msgstr "New project" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 -msgctxt "@info:question" -msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." -msgstr "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 -msgctxt "@window:title" -msgid "Install Plugin" -msgstr "Install Plugin" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 -msgctxt "@title:window" -msgid "Open File(s)" -msgstr "Open File(s)" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 -msgctxt "@text:window" -msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." -msgstr "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:14 -msgctxt "@title:window" -msgid "Save Project" -msgstr "Save Project" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:134 -msgctxt "@action:label" -msgid "Extruder %1" -msgstr "Extruder %1" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:144 -msgctxt "@action:label" -msgid "%1 & material" -msgstr "%1 & material" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:240 -msgctxt "@action:label" -msgid "Don't show project summary on save again" -msgstr "Don't show project summary on save again" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 -msgctxt "@title:tab" -msgid "Prepare" -msgstr "Prepare" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 -msgctxt "@title:tab" -msgid "Print" -msgstr "Print" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 -msgctxt "@label" -msgid "Infill" -msgstr "Infill" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Empty infill will leave your model hollow with low strength." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Light (20%) infill will give your model an average strength." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Dense (50%) infill will give your model an above average strength." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Solid (100%) infill will make your model completely solid." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Gradual" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 -msgctxt "@label" -msgid "Gradual infill will gradually increase the amount of infill towards the top." -msgstr "Gradual infill will gradually increase the amount of infill towards the top." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 -msgctxt "@label" -msgid "Generate Support" -msgstr "Generate Support" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 -msgctxt "@label" -msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 -msgctxt "@label" -msgid "Support Extruder" -msgstr "Support Extruder" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 -msgctxt "@label" -msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." -msgstr "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 -msgctxt "@label" -msgid "Build Plate Adhesion" -msgstr "Build Plate Adhesion" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 -msgctxt "@label" -msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." -msgstr "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 -msgctxt "@label" -msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" -msgstr "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" - -#: /home/ruben/Projects/Cura/resources/qml/ExtruderButton.qml:16 -msgctxt "@label %1 is filled in with the name of an extruder" -msgid "Print Selected Model with %1" -msgid_plural "Print Selected Models with %1" -msgstr[0] "Print Selected Model with %1" -msgstr[1] "Print Selected Models with %1" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 -msgctxt "@title:window" -msgid "Open project file" -msgstr "Open project file" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:71 -msgctxt "@text:window" -msgid "This is a Cura project file. Would you like to open it as a project or import the models from it?" -msgstr "This is a Cura project file. Would you like to open it as a project or import the models from it?" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:95 -msgctxt "@action:button" -msgid "Open as project" -msgstr "Open as project" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:114 -msgctxt "@action:button" -msgid "Import models" -msgstr "Import models" - -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:15 -msgctxt "@title:window" -msgid "Engine Log" -msgstr "Engine Log" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 -msgctxt "@label" -msgid "Material" -msgstr "Material" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 -msgctxt "@tooltip" -msgid "Click to check the material compatibility on Ultimaker.com." -msgstr "Click to check the material compatibility on Ultimaker.com." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profile:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." - -#: MachineSettingsAction/plugin.json -msgctxt "description" -msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "Provides a way to change machine settings (such as build volume, nozzle size, etc)" - -#: MachineSettingsAction/plugin.json -msgctxt "name" -msgid "Machine Settings action" -msgstr "Machine Settings action" - -#: XRayView/plugin.json -msgctxt "description" -msgid "Provides the X-Ray view." -msgstr "Provides the X-Ray view." - -#: XRayView/plugin.json -msgctxt "name" -msgid "X-Ray View" -msgstr "X-Ray View" - -#: X3DReader/plugin.json -msgctxt "description" -msgid "Provides support for reading X3D files." -msgstr "Provides support for reading X3D files." - -#: X3DReader/plugin.json -msgctxt "name" -msgid "X3D Reader" -msgstr "X3D Reader" - -#: GCodeWriter/plugin.json -msgctxt "description" -msgid "Writes GCode to a file." -msgstr "Writes GCode to a file." - -#: GCodeWriter/plugin.json -msgctxt "name" -msgid "GCode Writer" -msgstr "GCode Writer" - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "description" -msgid "Dump the contents of all settings to a HTML file." -msgstr "Dump the contents of all settings to a HTML file." - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "name" -msgid "God Mode" -msgstr "God Mode" - -#: ChangeLogPlugin/plugin.json -msgctxt "description" -msgid "Shows changes since latest checked version." -msgstr "Shows changes since latest checked version." - -#: ChangeLogPlugin/plugin.json -msgctxt "name" -msgid "Changelog" -msgstr "Changelog" - -#: ProfileFlattener/plugin.json -msgctxt "description" -msgid "Create a flattend quality changes profile." -msgstr "Create a flattend quality changes profile." - -#: ProfileFlattener/plugin.json -msgctxt "name" -msgid "Profile flatener" -msgstr "Profile flatener" - -#: USBPrinting/plugin.json -msgctxt "description" -msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "Accepts G-Code and sends them to a printer. Plugin can also update firmware." - -#: USBPrinting/plugin.json -msgctxt "name" -msgid "USB printing" -msgstr "USB printing" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "Provides support for writing X3G files" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "X3G Writer" - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "description" -msgid "Provides removable drive hotplugging and writing support." -msgstr "Provides removable drive hotplugging and writing support." - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "name" -msgid "Removable Drive Output Device Plugin" -msgstr "Removable Drive Output Device Plugin" - -#: UM3NetworkPrinting/plugin.json -msgctxt "description" -msgid "Manages network connections to Ultimaker 3 printers" -msgstr "Manages network connections to Ultimaker 3 printers" - -#: UM3NetworkPrinting/plugin.json -msgctxt "name" -msgid "UM3 Network Connection" -msgstr "UM3 Network Connection" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "description" -msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "name" -msgid "SolidWorks Integration" -msgstr "SolidWorks Integration" - -#: PostProcessingPlugin/plugin.json -msgctxt "description" -msgid "Extension that allows for user created scripts for post processing" -msgstr "Extension that allows for user created scripts for post processing" - -#: PostProcessingPlugin/plugin.json -msgctxt "name" -msgid "Post Processing" -msgstr "Post Processing" - -#: AutoSave/plugin.json -msgctxt "description" -msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "Automatically saves Preferences, Machines and Profiles after changes." - -#: AutoSave/plugin.json -msgctxt "name" -msgid "Auto Save" -msgstr "Auto Save" - -#: SliceInfoPlugin/plugin.json -msgctxt "description" -msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "Submits anonymous slice info. Can be disabled through preferences." - -#: SliceInfoPlugin/plugin.json -msgctxt "name" -msgid "Slice info" -msgstr "Slice info" - -#: XmlMaterialProfile/plugin.json -msgctxt "description" -msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "Provides capabilities to read and write XML-based material profiles." - -#: XmlMaterialProfile/plugin.json -msgctxt "name" -msgid "Material Profiles" -msgstr "Material Profiles" - -#: LegacyProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "Provides support for importing profiles from legacy Cura versions." - -#: LegacyProfileReader/plugin.json -msgctxt "name" -msgid "Legacy Cura Profile Reader" -msgstr "Legacy Cura Profile Reader" - -#: GCodeProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from g-code files." -msgstr "Provides support for importing profiles from g-code files." - -#: GCodeProfileReader/plugin.json -msgctxt "name" -msgid "GCode Profile Reader" -msgstr "GCode Profile Reader" - -#: LayerView/plugin.json -msgctxt "description" -msgid "Provides the Layer view." -msgstr "Provides the Layer view." - -#: LayerView/plugin.json -msgctxt "name" -msgid "Layer View" -msgstr "Layer View" - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "Upgrades configurations from Cura 2.5 to Cura 2.6." - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.5 to 2.6" -msgstr "Version Upgrade 2.5 to 2.6" - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "Upgrades configurations from Cura 2.6 to Cura 2.7." - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.6 to 2.7" -msgstr "Version Upgrade 2.6 to 2.7" - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "Upgrades configurations from Cura 2.1 to Cura 2.2." - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.1 to 2.2" -msgstr "Version Upgrade 2.1 to 2.2" - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "Upgrades configurations from Cura 2.2 to Cura 2.4." - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.2 to 2.4" -msgstr "Version Upgrade 2.2 to 2.4" - -#: ImageReader/plugin.json -msgctxt "description" -msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "Enables ability to generate printable geometry from 2D image files." - -#: ImageReader/plugin.json -msgctxt "name" -msgid "Image Reader" -msgstr "Image Reader" - -#: CuraEngineBackend/plugin.json -msgctxt "description" -msgid "Provides the link to the CuraEngine slicing backend." -msgstr "Provides the link to the CuraEngine slicing backend." - -#: CuraEngineBackend/plugin.json -msgctxt "name" -msgid "CuraEngine Backend" -msgstr "CuraEngine Backend" - -#: PerObjectSettingsTool/plugin.json -msgctxt "description" -msgid "Provides the Per Model Settings." -msgstr "Provides the Per Model Settings." - -#: PerObjectSettingsTool/plugin.json -msgctxt "name" -msgid "Per Model Settings Tool" -msgstr "Per Model Settings Tool" - -#: 3MFReader/plugin.json -msgctxt "description" -msgid "Provides support for reading 3MF files." -msgstr "Provides support for reading 3MF files." - -#: 3MFReader/plugin.json -msgctxt "name" -msgid "3MF Reader" -msgstr "3MF Reader" - -#: PluginBrowser/plugin.json -msgctxt "description" -msgid "Find, manage and install new plugins." -msgstr "Find, manage and install new plugins." - -#: PluginBrowser/plugin.json -msgctxt "name" -msgid "Plugin Browser" -msgstr "Plugin Browser" - -#: SolidView/plugin.json -msgctxt "description" -msgid "Provides a normal solid mesh view." -msgstr "Provides a normal solid mesh view." - -#: SolidView/plugin.json -msgctxt "name" -msgid "Solid View" -msgstr "Solid View" - -#: GCodeReader/plugin.json -msgctxt "description" -msgid "Allows loading and displaying G-code files." -msgstr "Allows loading and displaying G-code files." - -#: GCodeReader/plugin.json -msgctxt "name" -msgid "G-code Reader" -msgstr "G-code Reader" - -#: CuraProfileWriter/plugin.json -msgctxt "description" -msgid "Provides support for exporting Cura profiles." -msgstr "Provides support for exporting Cura profiles." - -#: CuraProfileWriter/plugin.json -msgctxt "name" -msgid "Cura Profile Writer" -msgstr "Cura Profile Writer" - -#: 3MFWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing 3MF files." -msgstr "Provides support for writing 3MF files." - -#: 3MFWriter/plugin.json -msgctxt "name" -msgid "3MF Writer" -msgstr "3MF Writer" - -#: UltimakerMachineActions/plugin.json -msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" - -#: UltimakerMachineActions/plugin.json -msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker machine actions" - -#: CuraProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing Cura profiles." -msgstr "Provides support for importing Cura profiles." - -#: CuraProfileReader/plugin.json -msgctxt "name" -msgid "Cura Profile Reader" -msgstr "Cura Profile Reader" diff --git a/resources/i18n/es/cura.po b/resources/i18n/es_ES/cura.po similarity index 72% rename from resources/i18n/es/cura.po rename to resources/i18n/es_ES/cura.po index cd9f3edf69..f8f379d3d9 100644 --- a/resources/i18n/es/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Spanish\n" -"Language: Spanish\n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: es\n" -"Country-Code: ES\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Impresión cancelada" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Deshabilitada" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Acción requerida" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "No se puede imprimir" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "La impresora no está configurada para alojar un grupo de impresoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Termina a las: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "La impresora aloja un grupo de %1 impresoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} ha terminado de imprimir «{job_name}»." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impresión terminada" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Complementos" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Examinar complementos..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Complementos instalados..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Ajustes de la máquina" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Rayos X" +msgid "X-Ray view" +msgstr "Vista de rayos X" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "Archivo GCode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Acepta códigos GCode y los envía a un enrutador Doodle3D por medio de wifi." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Impresión Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimir con un enrutador Doodle3D" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimir con un enrutador Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Conectar con Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Cancelar" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Enviando datos a Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "No se pueden enviar datos a Doodle3D Connect. ¿Hay otro trabajo que todavía esté activo?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Guardando datos en Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Archivo enviado a Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Abrir Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Imprimir con" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Habilitar dispositivos de digitalización..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Abrir la interfaz web de Doodle3D Connect" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "No se puede iniciar un trabajo nuevo porque la impresora está ocupada o no está conectada." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Datos de impresión" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Esta impresora no es compatible con la impresión USB porque utiliza el tipo UltiGCode." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "Impresión USB" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "No se puede iniciar un trabajo nuevo porque la impresora no es compatible con la impresión USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Advertencia" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "No se pudo encontrar el firmware necesario para la impresora en %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "Archivo X3G" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Firmware de la impresora" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Guardar en unidad extraíble {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Guardando en unidad extraíble {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Guardando" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "No se pudo guardar en {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Guardado en unidad extraíble {0} como {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "No se pudo encontrar un nombre de archivo al tratar de escribir en {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Expulsar" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Expulsar dispositivo extraíble {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "No se pudo guardar en unidad extraíble {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Error" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Guardado en unidad extraíble {0} como {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Archivo guardado" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Expulsar" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Expulsar dispositivo extraíble {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Expulsado {0}. Ahora puede retirar de forma segura la unidad." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Retirar de forma segura el hardware" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Unidad extraíble" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Imprimir a través de la red" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Imprime a través de la red." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Acceso a la impresora solicitado. Apruebe la solicitud en la impresora." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Estado de la conexión" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Estado de la conexión" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Volver a intentar" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Reenvía la solicitud de acceso." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Acceso a la impresora aceptado" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "No hay acceso para imprimir con esta impresora. No se puede enviar el trabajo de impresión." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Solicitar acceso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Envía la solicitud de acceso a la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Conectado a través de la red. Apruebe la solicitud de acceso en la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Conectado a través de la red." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Conectado a través de la red. No hay acceso para controlar la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Solicitud de acceso denegada en la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Se ha producido un error al solicitar acceso porque se ha agotado el tiempo de espera." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Se ha perdido la conexión de red." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Se ha perdido la conexión con la impresora. Compruebe que la impresora está conectada." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "No se puede iniciar un trabajo nuevo de impresión, la impresora está ocupada. El estado actual de la impresora es %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Estado de la impresora" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "No se puede iniciar un trabajo nuevo de impresión. No se ha cargado ningún PrintCore en la ranura {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "No se puede iniciar un trabajo nuevo de impresión. No se ha cargado material en la ranura {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "No hay suficiente material para la bobina {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "PrintCore distinto (Cura: {0}, impresora: {1}) seleccionado para extrusor {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Material distinto (Cura: {0}, impresora: {1}) seleccionado para extrusor {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "El PrintCore {0} no está calibrado correctamente. Debe llevarse a cabo una calibración XY de la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "¿Seguro que desea imprimir con la configuración seleccionada?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "La configuración o calibración de la impresora y de Cura no coinciden. Para obtener el mejor resultado, segmente siempre los PrintCores y los materiales que se insertan en la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Configuración desajustada" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Enviando datos a la impresora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Cancelar" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Enviando datos" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "No se puede enviar datos a la impresora. ¿Hay otro trabajo que todavía esté activo?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Cancelando impresión..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Impresión cancelada. Compruebe la impresora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Pausando impresión..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Reanudando impresión..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Sincronizar con la impresora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "¿Desea utilizar la configuración actual de su impresora en Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Los PrintCores o los materiales de la impresora difieren de los del proyecto actual. Para obtener el mejor resultado, segmente siempre los PrintCores y materiales que se hayan insertado en la impresora." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Conectar a través de la red" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "La impresora no está configurada para alojar un grupo de impresoras conectadas de Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "La impresora aloja un grupo de {count} impresoras conectadas de Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} ha terminado de imprimir «{job_name}». Recoja el impreso y confirme que ha borrado la placa de impresión." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} está reservada para imprimir «{job_name}». Modifique la configuración de la impresora de modo que se adapte al trabajo para comenzar la impresión." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Envío de nuevos trabajos (temporalmente) bloqueado; se sigue enviando el trabajo de impresión previo." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "No se pudo enviar el nuevo trabajo de impresión: esta impresora 3D (todavía) no está configurada para alojar un grupo de impresoras de Ultimaker 3 conectadas." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Enviando {file_name} al grupo {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "Enviar {file_name} al grupo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Mostrar trabajos de impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Abre la interfaz de trabajos de impresión en el navegador." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "No se puede enviar el trabajo de impresión al grupo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Para garantizar que su {machine_name} disponga de las prestaciones más recientes, se recomienda actualizar el firmware con regularidad. Esto se puede hacer en la {machine_name} (cuando esté conectada a la red) o vía USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Nuevo firmware de %s disponible" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Descargar" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "No se pudo acceder a la información actualizada." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Se han producido varios errores al abrir el archivo de SolidWorks. Compruebe que el archivo se puede abrir correctamente en SolidWorks." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "Archivo de elementos de SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "Archivo de ensamblado de SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Configurar" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Error al iniciar %s" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "Modificar GCode" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura recopila de forma anónima información de la segmentación. Puede desactivar esta opción en las preferencias." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Recopilando datos" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Descartar" @@ -472,14 +743,19 @@ msgstr "Archivo GCode" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Capas" +msgid "Layer view" +msgstr "Vista de capas" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura no muestra correctamente las capas si la impresión de alambre está habilitada." +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Vista de capas" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "Imagen GIF" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "El material seleccionado no es compatible con la máquina o la configuración seleccionada." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "No se puede segmentar con el material actual, ya que es incompatible con el dispositivo o la configuración seleccionados." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "No se puede segmentar" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Los ajustes actuales no permiten la segmentación. Los siguientes ajustes contienen errores: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "No se puede segmentar porque la torre auxiliar o la posición o posiciones de preparación no son válidas." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "No hay nada que segmentar porque ninguno de los modelos se adapta al volumen de impresión. Escale o rote los modelos para que se adapten." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Procesando capas" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Información" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Configurar ajustes por modelo" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Recomendado" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Personalizado" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "Archivo 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Tobera" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Examinar complementos" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "No se pudo obtener la ID del complemento de {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Advertencia" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Explorador de complementos" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Sólido" +msgid "Solid view" +msgstr "Vista de sólidos" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Analizar GCode" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Datos de GCode" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Asegúrese de que el GCode es adecuado para la impresora y para su configuración antes de enviar el archivo a la misma. Es posible que la representación del GCode no sea precisa." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Archivo 3MF del proyecto de Cura" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Seleccionar actualizaciones" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Nivelar placa de impresión" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Pared exterior" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Paredes interiores" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Forro" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Relleno" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Relleno de soporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Interfaz de soporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Soporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Falda" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Desplazamiento" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Retracciones" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Otro" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Archivo {0} presegmentado" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "No se ha cargado material." -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Material desconocido" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Buscando nueva ubicación para los objetos" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Buscando ubicación" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "No se puede encontrar una ubicación dentro del volumen de impresión para todos los objetos" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "No se puede encontrar la ubicación" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "El archivo ya existe" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "El archivo {0} ya existe. ¿Está seguro de que desea sobrescribirlo?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Personalizado" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Material personalizado" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "El material seleccionado no es compatible con la máquina o la configuración seleccionada." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Material incompatible" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "El diámetro del material seleccionado hace que el material sea incompatible con la impresora actual." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Deshacer" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Deshacer cambio del diámetro del material." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" msgstr "Error al exportar el perfil a {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." msgstr "Error al exportar el perfil a {0}: Error en el complemento de escritura." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Perfil exportado a {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Datos de exportación" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" msgstr "Error al importar el perfil de {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Perfil {0} importado correctamente" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "El perfil {0} tiene un tipo de archivo desconocido o está corrupto." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Perfil personalizado" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Al perfil le falta un tipo de calidad." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "No se ha podido encontrar un tipo de calidad {0} para la configuración actual." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "La altura del volumen de impresión se ha reducido debido al valor del ajuste «Secuencia de impresión» para evitar que el caballete colisione con los modelos impresos." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Volumen de impresión" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Multiplicar y colocar objetos" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Colocando objeto" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Se ha producido una excepción fatal de la que no podemos recuperarnos.

\n" -"

Use la siguiente información para enviar un informe de error a http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Se ha producido una excepción fatal de la que no podemos recuperarnos.

\n

Use la siguiente información para enviar un informe de error a http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Abrir página web" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Cargando máquinas..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Configurando escena..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Cargando interfaz..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Solo se puede cargar un archivo GCode a la vez. Se omitió la importación de {0}" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (anchura)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (altura)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Forma de la placa de impresión" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Origen en el centro" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Plataforma caliente" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Tipo de Gcode" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X mín." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distancia desde la parte izquierda del cabezal de impresión hasta el centro de la tobera. Se usa para evitar que colisionen la impresión anterior con el cabezal de impresión al imprimir «de uno en uno»." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y mín." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distancia desde la parte frontal del cabezal de impresión hasta el centro de la tobera. Se usa para evitar que colisionen la impresión anterior con el cabezal de impresión al imprimir «de uno en uno»." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X máx." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distancia desde la parte derecha del cabezal de impresión hasta el centro de la tobera. Se usa para evitar que colisionen la impresión anterior con el cabezal de impresión al imprimir «de uno en uno»." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y máx." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distancia desde la parte trasera del cabezal de impresión hasta el centro de la tobera. Se usa para evitar que colisionen la impresión anterior con el cabezal de impresión al imprimir «de uno en uno»." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Altura del caballete" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Diferencia de altura entre la punta de la tobera y el sistema del puente (ejes X e Y). Se usa para evitar que colisionen la impresión anterior con el caballete al imprimir «de uno en uno»." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Número de extrusores" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "El diámetro nominal del filamento compatible con la impresora. El diámetro exacto se sobrescribirá según el material o el perfil." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Diámetro del material" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Tamaño de la tobera" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Iniciar GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Los comandos de Gcode que se ejecutarán justo al inicio." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Finalizar GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Los comandos de Gcode que se ejecutarán justo al final." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Ajustes de la tobera" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Desplazamiento de la tobera sobre el eje X" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Desplazamiento de la tobera sobre el eje Y" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "GCode inicial del extrusor" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "GCode final del extrusor" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Ajustes de Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Guardar" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Imprimir en: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Temperatura del extrusor: %1/%2 °C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Temperatura de la plataforma: %1/%2 °C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Imprimir" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Registro de cambios" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Código de error desconocido: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Conectar con la impresora en red" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Para imprimir directamente en la impresora a través de la red, asegúrese de que esta está conectada a la red utilizando un cable de red o conéctela a la red wifi. Si no conecta Cura con la impresora, también puede utilizar una unidad USB para transferir archivos GCode a la impresora.\n" -"\n" -"Seleccione la impresora de la siguiente lista:" +msgstr "Para imprimir directamente en la impresora a través de la red, asegúrese de que esta está conectada a la red utilizando un cable de red o conéctela a la red wifi. Si no conecta Cura con la impresora, también puede utilizar una unidad USB para transferir archivos GCode a la impresora.\n\nSeleccione la impresora de la siguiente lista:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Agregar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Editar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Eliminar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Actualizar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Si la impresora no aparece en la lista, lea la guía de solución de problemas de impresión y red" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Tipo" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Desconocido" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Versión de firmware" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Dirección" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "La impresora todavía no ha respondido en esta dirección." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Conectar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Dirección de la impresora" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Introduzca la dirección IP o el nombre de host de la impresora en red." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Aceptar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Conecta a una impresora." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Carga la configuración de la impresora en Cura." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Activar configuración" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "La impresora no está configurada para alojar un grupo de impresoras conectadas de Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "La impresora aloja un grupo de %1 impresoras conectadas de Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Imprimir a través de la red" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Imprimir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 no está configurada para alojar un grupo de impresoras conectadas de Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Imprimiendo" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Reservado" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Terminado" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Preparando" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Disponible" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Completado el: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Borrar placa de impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Preparando para impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "No se aceptan trabajos de impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Abre la página de trabajos de impresión en su navegador web por defecto." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Ver trabajos de impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "GRUPO DE IMPRESORAS" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Trabajos de impresión" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Imprimiendo" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "En cola" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Esperando a que se cambie la configuración" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Impresoras" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Ver impresoras" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Configuración de complementos Cura SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Calidad predeterminada del STL exportado:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Preguntar siempre" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Usar siempre calidad fina" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Usar siempre calidad gruesa" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "Aceptar" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Importar el archivo SolidWorks como STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Calidad del STL exportado" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Calidad" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Gruesa" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Fina" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Cambia las secuencias de comandos de posprocesamiento." -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Ver modo: Capas" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Combinación de colores" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Color del material" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Tipo de línea" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Modo de compatibilidad" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Mostrar desplazamientos" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Mostrar asistentes" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Mostrar perímetro" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Mostrar relleno" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Mostrar solo capas superiores" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Mostrar cinco capas detalladas en la parte superior" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Superior o inferior" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Pared interior" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Suavizado" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Seleccionar ajustes" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Seleccionar ajustes o personalizar este modelo" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtrar..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Mostrar todo" @@ -1613,27 +2083,45 @@ msgstr "Abrir" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Buscar y actualizar complementos" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Puede ver aquí una lista de complementos de terceros." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Actualización" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Instalado" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Acuerdo de licencia de complemento" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " El complemento incluye una licencia.\nDebe aceptar dicha licencia para instalar el complemento.\n¿Acepta las siguientes condiciones?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Aceptar" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Rechazar" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "¡Todo correcto! Ha terminado con la comprobación." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "No está conectado a ninguna impresora." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "La impresora no acepta comandos." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "En mantenimiento. Compruebe la impresora." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Se ha perdido la conexión con la impresora." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Imprimiendo..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "En pausa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Preparando..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Retire la impresión." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Reanudar" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pausar" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Cancelar impresión" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Cancela la impresión" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "¿Está seguro de que desea cancelar la impresión?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Ha personalizado parte de los ajustes del perfil.\n" -"¿Desea descartar los cambios o guardarlos?" +msgstr "Ha personalizado parte de los ajustes del perfil.\n¿Desea descartar los cambios o guardarlos?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Valor personalizado" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Preguntar siempre" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Descartar y no volver a preguntar" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Guardar y no volver a preguntar" @@ -2038,7 +2524,7 @@ msgstr "Comprobar todo" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Calculado" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Unidad" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "General" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Idioma:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Moneda:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Tema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Tendrá que reiniciar la aplicación para que estos cambios tengan efecto." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Segmentar automáticamente al cambiar los ajustes." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Segmentar automáticamente" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Comportamiento de la ventanilla" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Resaltar en rojo las áreas del modelo sin soporte. Sin soporte, estas áreas no se imprimirán correctamente." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Mostrar voladizos" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Mueve la cámara de manera que el modelo se encuentre en el centro de la vista cuando se selecciona un modelo." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Centrar cámara cuando se selecciona elemento" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "¿Se debería invertir el comportamiento predeterminado del zoom de cura?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Invertir la dirección del zoom de la cámara." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "¿Debería moverse el zoom en la dirección del ratón?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Hacer zoom en la dirección del ratón" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "¿Deben moverse los modelos en la plataforma de modo que no se crucen?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Asegúrese de que lo modelos están separados." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "¿Deben moverse los modelos del área de impresión de modo que no toquen la placa de impresión?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Arrastrar modelos a la placa de impresión de forma automática" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Mostrar mensaje de advertencia en el lector de GCode." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Mensaje de advertencia en el lector de GCode" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "¿Debe forzarse el modo de compatibilidad de la capa?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Forzar modo de compatibilidad de la vista de capas (necesario reiniciar)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Abrir y guardar archivos" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "¿Deben ajustarse los modelos al volumen de impresión si son demasiado grandes?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Escalar modelos de gran tamaño" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Un modelo puede mostrarse demasiado pequeño si su unidad son metros en lugar de milímetros, por ejemplo. ¿Deben escalarse estos modelos?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Escalar modelos demasiado pequeños" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "¿Debe añadirse automáticamente un prefijo basado en el nombre de la impresora al nombre del trabajo de impresión?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Agregar prefijo de la máquina al nombre del trabajo" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "¿Mostrar un resumen al guardar un archivo de proyecto?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Mostrar un cuadro de diálogo de resumen al guardar el proyecto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Comportamiento predeterminado al abrir un archivo del proyecto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Comportamiento predeterminado al abrir un archivo del proyecto: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Preguntar siempre" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Abrir siempre como un proyecto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Importar modelos siempre" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Si ha realizado cambios en un perfil y, a continuación, ha cambiado a otro, aparecerá un cuadro de diálogo que le preguntará si desea guardar o descartar los cambios. También puede elegir el comportamiento predeterminado, así ese cuadro de diálogo no volverá a aparecer." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Anular perfil" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Privacidad" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "¿Debe Cura buscar actualizaciones cuando se abre el programa?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Buscar actualizaciones al iniciar" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "¿Deben enviarse datos anónimos sobre la impresión a Ultimaker? Tenga en cuenta que no se envían ni almacenan modelos, direcciones IP ni otra información de identificación personal." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Enviar información (anónima) de impresión" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Impresoras" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "Esperando un trabajo de impresión..." #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Perfiles" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Exportar perfil" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materiales" @@ -2472,14 +2958,14 @@ msgid "Import Material" msgstr "Importar material" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr "No se pudo importar el material en %1: %2." +msgstr "No se pudo importar el material en %1: %2." #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "El material se ha importado correctamente en %1." +msgstr "El material se ha importado correctamente en %1." #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Exportar material" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" -msgstr "Se ha producido un error al exportar el material a %1: %2." +msgstr "Se ha producido un error al exportar el material a %1: %2." #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" -msgstr "El material se ha exportado correctamente a %1." +msgstr "El material se ha exportado correctamente a %1." #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Agregar impresora" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Agregar impresora" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Pared exterior" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Paredes interiores" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Forro" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Relleno" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Relleno de soporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Interfaz de soporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Soporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Desplazamiento" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Retracciones" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Otro" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m/~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Ultimaker B.V. ha desarrollado Cura en cooperación con la comunidad.\n" -"Cura se enorgullece de utilizar los siguientes proyectos de código abierto:" +msgstr "Ultimaker B.V. ha desarrollado Cura en cooperación con la comunidad.\nCura se enorgullece de utilizar los siguientes proyectos de código abierto:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Formato de intercambio de datos" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Biblioteca de apoyo para cálculos científicos" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "Iconos SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Perfil:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Algunos valores de los ajustes o sobrescrituras son distintos a los valores almacenados en el perfil.\n\nHaga clic para abrir el administrador de perfiles." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Buscar..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Copiar valor en todos los extrusores" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Ocultar este ajuste" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "No mostrar este ajuste" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Mostrar este ajuste" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Configurar la visibilidad de los ajustes..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Algunos ajustes ocultos utilizan valores diferentes de los valores normales calculados.\n" -"\n" -"Haga clic para mostrar estos ajustes." +msgstr "Algunos ajustes ocultos utilizan valores diferentes de los valores normales calculados.\n\nHaga clic para mostrar estos ajustes." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Este ajuste tiene un valor distinto del perfil.\n" -"\n" -"Haga clic para restaurar el valor del perfil." +msgstr "Este ajuste tiene un valor distinto del perfil.\n\nHaga clic para restaurar el valor del perfil." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Este ajuste se calcula normalmente pero actualmente tiene un valor absoluto establecido.\n" -"\n" -"Haga clic para restaurar el valor calculado." +msgstr "Este ajuste se calcula normalmente pero actualmente tiene un valor absoluto establecido.\n\nHaga clic para restaurar el valor calculado." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Configuración de impresión" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Ajustes de impresión deshabilitados\n" -"No se pueden modificar los archivos GCode" +msgstr "Ajustes de impresión deshabilitados\nNo se pueden modificar los archivos GCode" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00h 00min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Información sobre el tiempo" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Tiempo de impresión" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g/ ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Configuración de impresión recomendada

Imprimir con los ajustes recomendados para la impresora, el material y la calidad seleccionados." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Configuración de impresión personalizada

Imprimir con un control muy detallado del proceso de segmentación." @@ -2807,7 +3253,7 @@ msgstr "&Ver" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automático: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "No hay ninguna impresora conectada" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Extremo caliente" +msgid "Extruder" +msgstr "Extrusor" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Temperatura objetivo del extremo caliente. El extremo caliente se calentará o enfriará en función de esta temperatura. Si el valor es 0, el calentamiento del extremo caliente se desactivará." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Temperatura actual de este extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Color del material en este extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Material en este extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Tobera insertada en este extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Placa de impresión" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Temperatura objetivo de la plataforma calentada. La plataforma se calentará o enfriará en función de esta temperatura. Si el valor es 0, el calentamiento de la plataforma se desactivará." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Temperatura actual de la plataforma caliente." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Temperatura a la que se va a precalentar la plataforma." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Cancelar" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Precalentar" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Caliente la plataforma antes de imprimir. Puede continuar ajustando la impresión durante el calentamiento, así no tendrá que esperar a que la plataforma se caliente para poder imprimir." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Activar impresión" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Nombre del trabajo" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Tiempo de impresión" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Tiempo restante estimado" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Configurar visibilidad de los ajustes..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Cargue un modelo en 3D" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Preparado para segmentar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Segmentando..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Listo para %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "No se puede segmentar." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "No se puede segmentar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Preparar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Cancelar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Seleccione el dispositivo de salida activo" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Abrir archivo(s)" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "A&yuda" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Abrir archivo" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Ver modo" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Ajustes" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Nuevo proyecto" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "¿Está seguro de que desea iniciar un nuevo proyecto? Esto borrará la placa de impresión y cualquier ajuste no guardado." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Instalar complemento" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Abrir archivo(s)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Hemos encontrado uno o más archivos de GCode entre los archivos que ha seleccionado. Solo puede abrir los archivos GCode de uno en uno. Si desea abrir un archivo GCode, seleccione solo uno." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "No mostrar resumen de proyecto al guardar de nuevo" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Guardar" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Preparar" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Supervisar" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Altura de capa" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Velocidad de impresión" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Más lento" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Más rápido" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Relleno" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Un relleno vacío dejará hueco el modelo con baja resistencia." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Un relleno ligero (20 %) dará al modelo una resistencia media." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Un relleno denso (50 %) dará al modelo una resistencia por encima de la media." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Un relleno sólido (100 %) hará que el modelo sea completamente macizo." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Gradual" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Un relleno gradual aumentará gradualmente la cantidad de relleno hacia arriba." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Habilitar gradual" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Generar soporte" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Generar estructuras para soportar piezas del modelo que tengan voladizos. Sin estas estructuras, estas piezas se romperían durante la impresión." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Extrusor del soporte" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Seleccione qué extrusor se utilizará como soporte. Esta opción formará estructuras de soporte por debajo del modelo para evitar que éste se combe o la impresión se haga en el aire." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Adherencia de la placa de impresión" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Habilita la impresión de un borde o una balsa. Esta opción agregará un área plana alrededor del objeto, que es fácil de cortar después." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "¿Necesita ayuda para mejorar sus impresiones?
Lea las Guías de solución de problemas de Ultimaker" @@ -3406,8 +3838,8 @@ msgstr "¿Necesita ayuda para mejorar sus impresiones?
Lea las G msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Imprimir modelo seleccionado con %1" +msgstr[1] "Imprimir modelos seleccionados con %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Registro del motor" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Material" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Comprobar la compatibilidad de los materiales" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Haga clic para comprobar la compatibilidad de los materiales en Utimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Perfil:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Algunos valores de los ajustes o sobrescrituras son distintos a los valores almacenados en el perfil.\n" -"\n" -"Haga clic para abrir el administrador de perfiles." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Permite cambiar los ajustes de la máquina (como el volumen de impresión, el tamaño de la tobera, etc.)." #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Acción Ajustes de la máquina" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Proporciona la vista de rayos X." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Vista de rayos X" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Proporciona asistencia para leer archivos X3D." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "Lector de X3D" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Escribe Gcode en un archivo." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "Escritor de Gcode" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Vuelva el contenido de todas las configuraciones en un archivo HTML." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "God Mode" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Acepta códigos GCode y los envía a un enrutador Doodle3D por medio de wifi." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Enrutador Doodle3D" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Muestra los cambios desde la última versión comprobada." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Registro de cambios" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Crear un perfil de cambios de calidad aplanado." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Aplanador de perfil" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Acepta GCode y lo envía a una impresora. El complemento también puede actualizar el firmware." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "Impresión USB" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Proporciona asistencia para la conexión directa y la escritura de la unidad extraíble." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Complemento de dispositivo de salida de unidad extraíble" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Gestiona las conexiones de red a las impresoras Ultimaker 3." #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "Conexión de red UM3" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Conexión de red UM3 (grupo)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Busca actualizaciones de firmware." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Buscador de actualizaciones de firmware" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Permite abrir ciertos archivos con el propio SolidWorks que, a continuación, puede convertirse y cargarse en Cura." #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "Integración con SolidWorks" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Extensión que permite el posprocesamiento de las secuencias de comandos creadas por los usuarios." #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Posprocesamiento" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Guarda automáticamente preferencias, máquinas y perfiles después de los cambios." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Guardado automático" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Envía información anónima de la segmentación. Se puede desactivar en las preferencias." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Info de la segmentación" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Permite leer y escribir perfiles de material basados en XML." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Perfiles de material" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Proporciona asistencia para la importación de perfiles de versiones anteriores de Cura." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Lector de perfiles antiguos de Cura" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Proporciona asistencia para la importación de perfiles de archivos GCode." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "Lector de perfiles Gcode" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Proporciona la vista de capas." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Vista de capas" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Actualiza la configuración de Cura 2.5 a Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Actualización de la versión 2.5 a la 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Actualiza la configuración de Cura 2.7 a Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Actualización de la versión 2.7 a la 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Actualiza la configuración de Cura 2.6 a Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Actualización de la versión 2.6 a la 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Actualiza las configuraciones de Cura 2.1 a Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Actualización de la versión 2.1 a la 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Actualiza la configuración de Cura 2.2 a Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Actualización de la versión 2.2 a la 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Habilita la capacidad de generar geometría imprimible a partir de archivos de imagen 2D." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Lector de imágenes" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Proporciona el vínculo para el backend de segmentación de CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "Backend de CuraEngine" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Proporciona los ajustes por modelo." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Herramienta de ajustes por modelo" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Proporciona asistencia para leer archivos 3MF." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "Lector de 3MF" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Busca, administra e instala nuevos complementos." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Explorador de complementos" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Proporciona una vista de malla sólida normal." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Vista de sólidos" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Permite cargar y visualizar archivos GCode." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "Lector de GCode" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Proporciona asistencia para exportar perfiles de Cura." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Escritor de perfiles de Cura" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Proporciona asistencia para escribir archivos 3MF." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "Escritor de 3MF" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Proporciona las acciones de la máquina de las máquinas Ultimaker (como un asistente para la nivelación de la plataforma, la selección de actualizaciones, etc.)." #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Acciones de la máquina Ultimaker" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Proporciona asistencia para la importación de perfiles de Cura." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Lector de perfiles de Cura" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Rayos X" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Acepta códigos GCode y los envía a un enrutador Doodle3D por medio de wifi." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Impresión Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Imprimir con Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Imprimir con" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Habilitar dispositivos de digitalización..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "Archivo X3G" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Guardando en unidad extraíble {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "No se pudo guardar en {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Tenga en cuenta que tiene que volver a abrir el archivo SolidWorks manualmente. Volver a cargar el modelo no funciona." + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Capas" + +#~ msgid "Browse plugins" +#~ msgstr "Examinar complementos" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Sólido" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "El archivo {0} ya existe. ¿Está seguro de que desea sobrescribirlo?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Error al exportar el perfil a {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Error al exportar el perfil a {0}: Error en el complemento de escritura." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Perfil exportado a {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Error al importar el perfil de {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Ajustes de Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Imprimir en: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Temperatura del extrusor: %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Temperatura de la plataforma: %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Ver modo: Capas" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "No se pudo importar el material en %1: %2." + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "El material se ha importado correctamente en %1." + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Se ha producido un error al exportar el material a %1: %2." + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "El material se ha exportado correctamente a %1." + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m/~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Extremo caliente" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Ver modo" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Imprimir" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0 %" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Un relleno vacío dejará hueco el modelo con baja resistencia." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20 %" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Un relleno ligero (20 %) dará al modelo una resistencia media." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50 %" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Un relleno denso (50 %) dará al modelo una resistencia por encima de la media." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100 %" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Un relleno sólido (100 %) hará que el modelo sea completamente macizo." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Gradual" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Proporciona asistencia para escribir archivos X3G." + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "Escritor de X3G" #~ msgctxt "@label" #~ msgid "Machine Settings action" @@ -4229,7 +4857,7 @@ msgstr "" #~ msgctxt "@label" #~ msgid "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" -#~ msgstr "¿Necesita mejorar sus impresiones? Lea las Guías de solución de problemas de Ultimaker." +#~ msgstr "¿Necesita mejorar sus impresiones? Lea las Guías de solución de problemas de Ultimaker." #~ msgctxt "@info:status" #~ msgid "Connected over the network to {0}. Please approve the access request on the printer." diff --git a/resources/i18n/es/fdmextruder.def.json.po b/resources/i18n/es_ES/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/es/fdmextruder.def.json.po rename to resources/i18n/es_ES/fdmextruder.def.json.po index cca64a71e0..a435f60aae 100644 --- a/resources/i18n/es/fdmextruder.def.json.po +++ b/resources/i18n/es_ES/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:31+0200\n" "Last-Translator: Bothof \n" "Language-Team: Spanish\n" -"Language: Spanish\n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: es\n" -"Country-Code: ES\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "El tren extrusor que se utiliza para imprimir. Se emplea en la extrusió #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Id. de la tobera" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Id. de la tobera de un tren extrusor, como \"AA 0.4\" y \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/es/fdmprinter.def.json.po b/resources/i18n/es_ES/fdmprinter.def.json.po similarity index 89% rename from resources/i18n/es/fdmprinter.def.json.po rename to resources/i18n/es_ES/fdmprinter.def.json.po index 240c757aa9..b472fd44a7 100644 --- a/resources/i18n/es/fdmprinter.def.json.po +++ b/resources/i18n/es_ES/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Spanish\n" -"Language: Spanish\n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: es\n" -"Country-Code: ES\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "Nombre del modelo de la impresora 3D." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Mostrar versiones de la máquina" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"Los comandos de Gcode que se ejecutarán justo al inicio, separados por \n" -"." +msgstr "Los comandos de Gcode que se ejecutarán justo al inicio - separados por \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"Los comandos de Gcode que se ejecutarán justo al final, separados por \n" -"." +msgstr "Los comandos de Gcode que se ejecutarán justo al final - separados por \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "GUID del material. Este valor se define de forma automática. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Esperar a que la placa de impresión se caliente" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Elija si desea escribir un comando para esperar a que la temperatura de #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Esperar a la que la tobera se caliente" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Elija si desea esperar a que la temperatura de la tobera se alcance al i #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Incluir temperaturas del material" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Elija si desea incluir comandos de temperatura de la tobera al inicio de #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Incluir temperatura de la placa de impresión" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Elija si desea incluir comandos de temperatura de la placa de impresión #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Ancho de la máquina" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "Ancho (dimensión sobre el eje X) del área de impresión." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Profundidad de la máquina" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "Profundidad (dimensión sobre el eje Y) del área de impresión." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Forma de la placa de impresión" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Elíptica" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Altura de la máquina" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "Altura (dimensión sobre el eje Z) del área de impresión." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Tiene una placa de impresión caliente" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Indica si la máquina tiene una placa de impresión caliente." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "El origen está centrado" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Tipo de Gcode que se va a generar." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumetric)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "Diferencia de altura entre la punta de la tobera y el sistema del puente #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Id. de la tobera" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Id. de la tobera de un tren extrusor, como \"AA 0.4\" y \"BB 0.8\"." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "Ancho de una sola línea de pared para todas las líneas de pared except #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Ancho de línea de la superficie superior del forro" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Ancho de una sola línea de las áreas superiores de la impresión." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Ancho de una sola línea de la torre auxiliar." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Ancho de línea de la capa inicial" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Multiplicador del ancho de la línea de la primera capa. Si esta se aumenta, se puede mejorar la adherencia a la plataforma." #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Perímetro" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Extrusor de pared exterior" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "El tren extrusor que se utiliza para imprimir la pared exterior. Se emplea en la extrusión múltiple." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Extrusor de paredes interiores" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "El tren extrusor que se utiliza para imprimir las paredes interiores. Se emplea en la extrusión múltiple." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Grosor de la pared" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Grosor de las paredes en dirección horizontal. Este valor dividido por el ancho de la línea de pared define el número de paredes." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Distancia de un movimiento de desplazamiento insertado tras la pared ext #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Extrusor de la superficie superior del forro" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "El tren extrusor que se utiliza para imprimir el nivel superior del forro. Se emplea en la extrusión múltiple." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Capas de la superficie superior del forro" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "El número de capas del nivel superior del forro. Normalmente es suficiente con una sola capa para generar superficies superiores con mayor calidad." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Patrón de la superficie superior del forro" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "El patrón de las capas de nivel superior." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Líneas" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concéntrico" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zigzag" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Direcciones de línea de la superficie superior del forro" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Una lista de los valores enteros de las direcciones de línea si las capas de la superficie superior del forro utilizan líneas o el patrón en zigzag. Los elementos de esta lista se utilizan de forma secuencial a medida que las capas se utilizan y, cuando se alcanza el final, la lista vuelve a comenzar desde el principio. Los elementos de la lista están separados por comas y toda la lista aparece entre corchetes. El valor predeterminado es una lista vacía que utiliza los ángulos predeterminados típicos (45 y 135 grados)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Extrusor superior/inferior" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "El tren extrusor que se utiliza para imprimir el forro superior e inferior. Se emplea en la extrusión múltiple." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "En todas partes" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Imprimir paredes finas" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Imprime las piezas del modelo que son horizontalmente más finas que el tamaño de la tobera." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Cantidad de desplazamiento aplicado a todos los polígonos de cada capa. #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Expansión horizontal de la capa inicial" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Cantidad de desplazamiento aplicado a todos los polígonos de la primera capa. Un valor negativo puede compensar el aplastamiento de la primera capa, lo que se conoce como «pie de elefante»." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Aleatoria" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Esquina más pronunciada" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Coordenada Y de la posición cerca de donde se comienza a imprimir cada parte en una capa." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Preferencia de esquina de costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Controlar si las esquinas del contorno del modelo influyen en la posición de la costura. «Ninguno» significa que las esquinas no influyen en la posición de la costura. «Ocultar costura» significa que es probable que la costura se realice en una esquina interior. «Mostrar costura» significa que es probable que la costura sea en una esquina exterior. «Ocultar o mostrar costura» significa que es probable que la costura se realice en una esquina interior o exterior." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Ninguno" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Ocultar costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Mostrar costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Ocultar o mostrar costura" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Costuras relativas en Z" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Cuando se habilita, las coordenadas de la costura en z son relativas al centro de cada pieza. De lo contrario, las coordenadas definen una posición absoluta en la placa de impresión." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Cuando el modelo tiene pequeños huecos verticales, el tiempo de cálculo puede aumentar alrededor de un 5 % para generar el forro superior e inferior en estos espacios estrechos. En tal caso, desactive este ajuste." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Recuento de paredes adicionales de forro" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Reemplaza la parte más externa del patrón superior/inferior con un número de líneas concéntricas. Mediante el uso de una o dos líneas mejora los techos que comienzan en el material de relleno." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Relleno" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Extrusor del relleno" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "El tren extrusor que se utiliza para imprimir el relleno. Se emplea en la extrusión múltiple." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Patrón de relleno" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Patrón del material de relleno de la impresión. El relleno de línea y zigzag cambian de dirección en capas alternas, reduciendo así el coste del material. Los patrones de rejilla, triángulo, cúbico, tetraédrico y concéntrico se imprimen en todas las capas por completo. El relleno cúbico y el tetraédrico cambian en cada capa para proporcionar una distribución de fuerza equitativa en cada dirección." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Patrón del material de relleno de la impresión. El relleno de línea y zigzag cambia de dirección en capas alternas, con lo que se reduce el coste del material. Los patrones de rejilla, triángulo, cúbico, de octeto, cúbico bitruncado y concéntrico se imprimen en todas las capas por completo. El relleno cúbico, cúbico bitruncado y de octeto cambian en cada capa para proporcionar una distribución de fuerza equitativa en cada dirección." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Subdivisión cúbica" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tetraédrico" +msgid "Octet" +msgstr "Octeto" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Cúbico bitruncado" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zigzag" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Cruz" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Cruz 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Conectar líneas de relleno" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Conectar los extremos donde los patrones de relleno se juntan con la pared interior usando una línea que siga la forma de esta. Habilitar este ajuste puede lograr que el relleno se adhiera mejor a las paredes y reduce el efecto del relleno sobre la calidad de las superficies verticales. Deshabilitar este ajuste reduce la cantidad de material utilizado." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Porcentaje de superposición del forro" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Cantidad de superposición entre el forro y las paredes como porcentaje del ancho de línea. Una ligera superposición permite que las paredes conecten firmemente con el forro. Este es el porcentaje de la media de los anchos de las líneas del forro y la pared más profunda." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "No genere áreas con un relleno inferior a este (utilice forro)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Expandir forros en el relleno" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Anchura de retirada del forro" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Expanda las áreas de forro del forro superior e inferior en superficies planas. De forma predeterminada, los forros se detienen por debajo de las líneas de pared que rodean el relleno, pero pueden aparecer agujeros si su densidad es muy baja. Esta configuración expande los forros más allá de las líneas de pared de modo que el relleno de la siguiente capa recae en el forro." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Anchura máxima de las áreas de forro que se deben retirar. Todas las áreas de forro inferiores a este valor desaparecerán. Esto puede contribuir a limitar el tiempo y el material empleados en imprimir el forro superior/inferior en las superficies inclinadas del modelo." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Expandir forros superiores en el relleno" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Anchura de retirada del forro superior" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Expanda las áreas del forro superior (áreas con aire por encima) para que soporten el relleno que tiene arriba." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Anchura máxima de las áreas superiores de forro que se deben retirar. Todas las áreas de forro inferiores a este valor desaparecerán. Esto puede contribuir a limitar el tiempo y el material empleados en imprimir el forro superior en las superficies inclinadas del modelo." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Expandir forros inferiores en el relleno" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Anchura de retirada del forro inferior" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Expanda las áreas del forro inferior (áreas con aire por debajo) para que queden sujetas por las capas de relleno superiores e inferiores." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Anchura máxima de las áreas inferiores de forro que se deben retirar. Todas las áreas de forro inferiores a este valor desaparecerán. Esto puede contribuir a limitar el tiempo y el material empleados en imprimir el forro inferior en las superficies inclinadas del modelo." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Distancia de expansión del forro" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Distancia de expansión de los forros en el relleno. La distancia predeterminada es suficiente para cubrir el hueco que existe entre las líneas de relleno y evitará que aparezcan agujeros en el forro en aquellas áreas en las que la densidad del relleno es baja. A menudo una distancia más pequeña es suficiente." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "La distancia a la que los forros se expanden en el relleno. Los valores superiores hacen que el forro se adhiera mejor al patrón de relleno y que las paredes de las capas vecinas se adhieran mejor al forro. Los valores inferiores ahorran material." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Distancia de expansión del forro superior" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "La distancia a la que los forros superiores se expanden en el relleno. Los valores superiores hacen que el forro se adhiera mejor al patrón de relleno y que las paredes de la capa superior se adhieran mejor al forro. Los valores inferiores ahorran material." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Distancia de expansión del forro inferior" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "La distancia a la que los forros inferiores se expanden en el relleno. Los valores superiores hacen que el forro se adhiera mejor al patrón de relleno y que el forro se adhiera mejor a las paredes de la capa inferior. Los valores inferiores ahorran material." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "Velocidad a la que se imprimen todas las paredes interiores. Imprimir la #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Velocidad de la superficie superior del forro" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Velocidad a la que se imprimen las capas de la superficie superior del forro." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Velocidad a la que se imprimen las capas superiores/inferiores." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "Aceleración a la que se imprimen las paredes interiores." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Aceleración de la superficie superior del forro" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Aceleración a la que se imprimen las capas de la superficie superior del forro." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Aceleración a la que se imprimen las capas superiores/inferiores." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Cambio en la velocidad instantánea máxima a la que se imprimen las par #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Impulso de la superficie superior del forro" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Cambio en la velocidad instantánea máxima a la que se imprime la capa de la superficie superior del forro." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Cambio en la velocidad instantánea máxima a la que se imprimen las capas superiores/inferiores." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zigzag" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Cruz" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Conectar los zigzags. Esto aumentará la resistencia de la estructura de #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Descomponer el soporte en pedazos" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Omitir algunas conexiones de línea de soporte para que la estructura de soporte sea más fácil de descomponer. Este ajuste es aplicable al patrón de relleno del soporte en zigzag." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Tamaño de los pedazos de soporte" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Omitir una conexión entre líneas de soporte una vez cada N milímetros a fin de lograr que la estructura de soporte resulte más fácil de descomponer." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Recuento de líneas de pedazos del soporte" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Omitir una de cada N líneas de conexión para que la estructura de soporte se descomponga fácilmente." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "Cantidad de desplazamiento aplicado a todos los polígonos de cada capa. #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Grosor de la capa de relleno de soporte" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Grosor por capa de material de relleno de soporte. Este valor siempre debe ser un múltiplo de la altura de la capa; de lo contrario, se redondea." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Escalones de relleno de soporte" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Número de veces necesarias para reducir a la mitad la densidad del relleno de soporte a medida que se aleja de las superficies superiores. Las zonas más próximas a las superficies superiores tienen una densidad mayor, hasta alcanzar la densidad de relleno de soporte." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Altura necesaria de los escalones de relleno de soporte" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Altura del relleno de soporte de una determinada densidad antes de cambiar a la mitad de la densidad." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"La distancia horizontal entre la falda y la primera capa de la impresión.\n" -"Esta es la distancia mínima; múltiples líneas de falda se extenderán hacia el exterior a partir de esta distancia." +msgstr "La distancia horizontal entre la falda y la primera capa de la impresión.\nEsta es la distancia mínima; múltiples líneas de falda se extenderán hacia el exterior a partir de esta distancia." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Imprimir solo el borde en el exterior del modelo. Esto reduce el número de bordes que deberá retirar después sin que la adherencia a la plataforma se vea muy afectada." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Desplazamiento Z de la capa inicial" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "El extrusor se desplaza de la altura normal de la primera capa con este valor, el cual puede ser positivo (elevado) o negativo (bajo). Algunas clases de filamentos se adhieren mejor a la placa de impresión si se levanta ligeramente el extrusor." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Desplazamiento Z de capas en disminución" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Si no es cero, el desplazamiento Z se reduce a cero en las capas. Un valor de cero implica que el desplazamiento Z se mantiene constante en todas las capas de impresión." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Si la balsa está habilitada, esta es el área adicional de la balsa alrededor del modelo que también tiene una balsa. El aumento de este margen creará una balsa más resistente mientras que usará más material y dejará menos área para la impresión." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Suavizado de la balsa" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Este ajuste controla la medida en que se redondean las esquinas interiores en el contorno de la balsa. Las esquinas hacia el interior se redondean en semicírculo con un radio equivalente al valor aquí indicado. Este ajuste también elimina los orificios del contorno de la balsa que sean más pequeños que dicho círculo." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Tras cambiar de extrusor, limpie el material que rezuma de la tobera en #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Volumen de purga de la torre auxiliar" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Cantidad de filamentos que purgar al limpiar la torre auxiliar. La purga sirve para compensar la pérdida de filamentos que se produce durante el rezumado cuando la tobera está inactiva." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Suavice los contornos espiralizados para reducir la visibilidad de la costura Z (la costura Z debería ser apenas visible en la impresora pero seguirá siendo visible en la vista de capas). Tenga en cuenta que la suavización tenderá a desdibujar detalles finos de la superficie." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Extrusión relativa" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Utilizar la extrusión relativa en lugar de la extrusión absoluta. El uso de pasos de extrusión relativos permite un procesamiento posterior más sencillo del GCode. Sin embargo, no es compatible con todas las impresoras y puede causar ligeras desviaciones en la cantidad de material depositado si se compara con los pasos de extrusión absolutos. Con independencia de este ajuste, el modo de extrusión se ajustará siempre en absoluto antes de la salida de cualquier secuencia GCode." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "Experimental" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Optimizar el orden de impresión de paredes" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optimizar el orden en el que se imprimen las paredes a fin de reducir el número de retracciones y la distancia recorrida. La mayoría de los componentes se beneficiarán si este ajuste está habilitado pero, en algunos casos, se puede tardar más, por lo que deben compararse las previsiones de tiempo de impresión con y sin optimización." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Velocidad a la que se desplaza durante el depósito por inercia con relación a la velocidad de la trayectoria de extrusión. Se recomienda un valor ligeramente por debajo del 100%, ya que la presión en el tubo guía disminuye durante el movimiento depósito por inercia." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Recuento de paredes adicionales de forro" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Reemplaza la parte más externa del patrón superior/inferior con un número de líneas concéntricas. Mediante el uso de una o dos líneas mejora los techos que comienzan en el material de relleno." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Alterna la dirección en la que se imprimen las capas superiores/inferiores. Normalmente, se imprimen únicamente en diagonal. Este ajuste añade las direcciones solo X y solo Y." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Tamaño de las bolsas 3D en cruces" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Tamaño de las bolsas en cruces del patrón de cruz 3D en las alturas en las que el patrón coincide consigo mismo." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Alternar bolsas 3D en cruz" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Solo se aplica a mitad de los cruces en patrones de cruz 3D y alterna la ubicación de las bolsas entre las alturas a las que el patrón coincide consigo mismo." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Imprima el relleno cada cierto tiempo para que el filamento se enrosque #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Relleno spaghetti en escalones" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Puede elegir si imprimir el relleno spaghetti en escalones o extruir todos los filamentos del relleno al final de la impresión." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Ajusta la densidad del relleno spaghetti. Tenga en cuenta que la densida #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Volumen adicional de relleno spaghetti" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Término de corrección para ajustar el volumen total que se extruye cada vez que se usa el relleno spaghetti." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Distancia de un movimiento ascendente que se extrude a media velocidad.\n" -"Esto puede causar una mejor adherencia a las capas anteriores, aunque no calienta demasiado el material en esas capas. Solo se aplica a la impresión de alambre." +msgstr "Distancia de un movimiento ascendente que se extrude a media velocidad.\nEsto puede causar una mejor adherencia a las capas anteriores, aunque no calienta demasiado el material en esas capas. Solo se aplica a la impresión de alambre." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Distancia entre la tobera y líneas descendentes en horizontal. Cuanto m #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Habilitar alisado" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Pasar por la superficie superior una vez más, pero sin extruir material, para derretir la parte externa del plástico y crear una superficie más lisa." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Planchar solo la capa superior" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Planchar únicamente la última capa de la malla. De este modo se ahorra tiempo si las capas inferiores no requieren un acabado superficial suave." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Patrón de alisado" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "El patrón que se usará para el alisado de las superficies superiores." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concéntrico" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zigzag" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Espaciado de líneas del alisado" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Distancia entre las líneas del alisado" #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Flujo de alisado" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Cantidad de material (relativa a la línea del forro normal) que se extruye durante el alisado. Dejar la tobera llena permite rellenar algunas grietas de la superficie, pero llenarla demasiado puede provocar la sobrextrusión y afectar a la superficie." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Inserción de alisado" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Distancia que debe guardarse desde el borde del modelo. Si se alisa hasta el borde de la malla, puede quedar un borde irregular." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Velocidad de alisado" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Velocidad a la que pasa por encima de la superficie superior." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Aceleración del alisado" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "La aceleración a la que se produce el alisado." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Impulso de alisado" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Cambio en la velocidad instantánea máxima durante el alisado." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Matriz de transformación que se aplicará al modelo cuando se cargue desde el archivo." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Extrusor de pared" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "El tren extrusor que se utiliza para imprimir paredes. Se emplea en la extrusión múltiple." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Patrón del material de relleno de la impresión. El relleno de línea y zigzag cambian de dirección en capas alternas, reduciendo así el coste del material. Los patrones de rejilla, triángulo, cúbico, tetraédrico y concéntrico se imprimen en todas las capas por completo. El relleno cúbico y el tetraédrico cambian en cada capa para proporcionar una distribución de fuerza equitativa en cada dirección." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Tetraédrico" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Expandir forros en el relleno" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Expanda las áreas de forro del forro superior e inferior en superficies planas. De forma predeterminada, los forros se detienen por debajo de las líneas de pared que rodean el relleno, pero pueden aparecer agujeros si su densidad es muy baja. Esta configuración expande los forros más allá de las líneas de pared de modo que el relleno de la siguiente capa recae en el forro." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Expandir forros superiores en el relleno" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Expanda las áreas del forro superior (áreas con aire por encima) para que soporten el relleno que tiene arriba." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Expandir forros inferiores en el relleno" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Expanda las áreas del forro inferior (áreas con aire por debajo) para que queden sujetas por las capas de relleno superiores e inferiores." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Distancia de expansión de los forros en el relleno. La distancia predeterminada es suficiente para cubrir el hueco que existe entre las líneas de relleno y evitará que aparezcan agujeros en el forro en aquellas áreas en las que la densidad del relleno es baja. A menudo una distancia más pequeña es suficiente." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Omitir algunas conexiones en zigzag" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Omite algunas conexiones en zigzag para que la estructura de soporte se rompa fácilmente." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Omitir recuento de conexión en zigzag" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Omite una de cada N líneas de conexión para que la estructura de soporte se rompa fácilmente." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Mostrar versiones de la máquina" @@ -4901,4 +5116,4 @@ msgstr "Matriz de transformación que se aplicará al modelo cuando se cargue de #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Superposición de extrusión doble" +#~ msgstr "Superposición de extrusión doble" \ No newline at end of file diff --git a/resources/i18n/fdmextruder.def.json.pot b/resources/i18n/fdmextruder.def.json.pot index 8a8b4b089a..8b67f13315 100644 --- a/resources/i18n/fdmextruder.def.json.pot +++ b/resources/i18n/fdmextruder.def.json.pot @@ -5,15 +5,13 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: TEAM\n" -"Language: LANGUAGE\n" -"Lang-Code: xx\n" -"Country-Code: XX\n" +"Language: xx_XX\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/resources/i18n/fdmprinter.def.json.pot b/resources/i18n/fdmprinter.def.json.pot index 4b4c3ada46..460e508eb9 100644 --- a/resources/i18n/fdmprinter.def.json.pot +++ b/resources/i18n/fdmprinter.def.json.pot @@ -5,15 +5,13 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: TEAM\n" -"Language: LANGUAGE\n" -"Lang-Code: xx\n" -"Country-Code: XX\n" +"Language: xx_XX\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -811,18 +809,6 @@ msgctxt "shell description" msgid "Shell" msgstr "" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "" -"The extruder train used for printing the walls. This is used in multi-" -"extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" @@ -1250,6 +1236,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1274,6 +1265,41 @@ msgid "" "layer." msgstr "" +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "" +"Control whether corners on the model outline influence the position of the " +"seam. None means that corners have no influence on the seam position. Hide " +"Seam makes the seam more likely to occur on an inside corner. Expose Seam " +"makes the seam more likely to occur on an outside corner. Hide or Expose " +"Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" @@ -1300,6 +1326,19 @@ msgid "" "case, disable the setting." msgstr "" +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "" +"Replaces the outermost part of the top/bottom pattern with a number of " +"concentric lines. Using one or two lines improves roofs that start on infill " +"material." +msgstr "" + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1353,9 +1392,9 @@ msgctxt "infill_pattern description" msgid "" "The pattern of the infill material of the print. The line and zig zag infill " "swap direction on alternate layers, reducing material cost. The grid, " -"triangle, cubic, tetrahedral and concentric patterns are fully printed every " -"layer. Cubic and tetrahedral infill change with every layer to provide a " -"more equal distribution of strength over each direction." +"triangle, cubic, octet, quarter cubic and concentric patterns are fully " +"printed every layer. Cubic, quarter cubic and octet infill change with every " +"layer to provide a more equal distribution of strength over each direction." msgstr "" #: fdmprinter.def.json @@ -1385,7 +1424,12 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" +msgid "Octet" +msgstr "" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" msgstr "" #: fdmprinter.def.json @@ -1403,6 +1447,31 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "" +"Connect the ends where the infill pattern meets the inner wall using a lines " +"which follows the shape of the inner wall. Enabling this setting can make " +"the infill adhere to the walls better and reduces the effects on infill on " +"the quality of vertical surfaces. Disabling this setting reduces the amount " +"of material used." +msgstr "" + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1557,42 +1626,45 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" +msgctxt "skin_preshrink description" msgid "" -"Expand skin areas of top and/or bottom skin of flat surfaces. By default, " -"skins stop under the wall lines that surround infill but this can lead to " -"holes appearing when the infill density is low. This setting extends the " -"skins beyond the wall lines so that the infill on the next layer rests on " -"skin." +"The largest width of skin areas which are to be removed. Every skin area " +"smaller than this value will disappear. This can help in limiting the amount " +"of time and material spent on printing top/bottom skin at slanted surfaces " +"in the model." msgstr "" #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" +msgctxt "top_skin_preshrink description" msgid "" -"Expand the top skin areas (areas with air above) so that they support infill " -"above." +"The largest width of top skin areas which are to be removed. Every skin area " +"smaller than this value will disappear. This can help in limiting the amount " +"of time and material spent on printing top skin at slanted surfaces in the " +"model." msgstr "" #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" +msgctxt "bottom_skin_preshrink description" msgid "" -"Expand the bottom skin areas (areas with air below) so that they are " -"anchored by the infill layers above and below." +"The largest width of bottom skin areas which are to be removed. Every skin " +"area smaller than this value will disappear. This can help in limiting the " +"amount of time and material spent on printing bottom skin at slanted " +"surfaces in the model." msgstr "" #: fdmprinter.def.json @@ -1603,10 +1675,37 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" msgid "" -"The distance the skins are expanded into the infill. The default distance is " -"enough to bridge the gap between the infill lines and will stop holes " -"appearing in the skin where it meets the wall when the infill density is " -"low. A smaller distance will often be sufficient." +"The distance the skins are expanded into the infill. Higher values makes the " +"skin attach better to the infill pattern and makes the walls on neighboring " +"layers adhere better to the skin. Lower values save amount of material used." +msgstr "" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "" +"The distance the top skins are expanded into the infill. Higher values makes " +"the skin attach better to the infill pattern and makes the walls on the " +"layer above adhere better to the skin. Lower values save amount of material " +"used." +msgstr "" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "" +"The distance the bottom skins are expanded into the infill. Higher values " +"makes the skin attach better to the infill pattern and makes the skin adhere " +"better to the walls on the layer below. Lower values save amount of material " +"used." msgstr "" #: fdmprinter.def.json @@ -2049,16 +2148,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "" -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2326,16 +2415,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "" -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2547,16 +2626,6 @@ msgid "" "printed." msgstr "" -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -3167,6 +3236,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -3181,25 +3255,38 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" +msgid "Break Up Support In Chunks" msgstr "" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" msgid "" -"Skip some ZigZags connections to make the support structure easier to break." +"Skip some support line connections to make the support structure easier to " +"break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "" +"Leave out a connection between support lines once every N millimeter to make " +"the support structure easier to break away." msgstr "" #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" +msgid "Support Chunk Line Count" msgstr "" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" msgid "" "Skip one in every N connection lines to make the support structure easier to " -"break." +"break away." msgstr "" #: fdmprinter.def.json @@ -3882,6 +3969,32 @@ msgid "" "that much." msgstr "" +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "" +"The extruder is offset from the normal height of the first layer by this " +"amount. It can be positive (raised) or negative (lowered). Some filament " +"types adhere to the build plate better if the extruder is raised slightly." +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "" +"When non-zero, the Z offset is reduced to 0 over that many layers. A value " +"of 0 means that the Z offset remains constant for all the layers in the " +"print." +msgstr "" + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3895,6 +4008,20 @@ msgid "" "while using more material and leaving less area for your print." msgstr "" +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "" +"This setting control how much inner corners in the raft outline are rounded. " +"Inward corners are rounded to a semi circle with a radius equal to the value " +"given here. This setting also removes holes in the raft outline which are " +"smaller than such a circle." +msgstr "" + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -4685,6 +4812,22 @@ msgid "" "layer view). Note that smoothing will tend to blur fine surface details." msgstr "" +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "" +"Use relative extrusion rather than absolute extrusion. Using relative E-" +"steps makes for easier post-processing of the Gcode. However, it's not " +"supported by all printers and it may produce very slight deviations in the " +"amount of deposited material compared to absolute E-steps. Irrespective of " +"this setting, the extrusion mode will always be set to absolute before any " +"Gcode script is output." +msgstr "" + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4695,6 +4838,20 @@ msgctxt "experimental description" msgid "experimental!" msgstr "" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "" +"Optimize the order in which walls are printed so as to reduce the number of " +"retractions and the distance travelled. Most parts will benefit from this " +"being enabled but some may actually take longer so please compare the print " +"time estimates with and without optimization." +msgstr "" + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4829,19 +4986,6 @@ msgid "" "coasting move the pressure in the bowden tube drops." msgstr "" -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "" -"Replaces the outermost part of the top/bottom pattern with a number of " -"concentric lines. Using one or two lines improves roofs that start on infill " -"material." -msgstr "" - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4855,6 +4999,31 @@ msgid "" "directions." msgstr "" +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "" +"The size of pockets at four-way crossings in the cross 3D pattern at heights " +"where the pattern is touching itself." +msgstr "" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "" +"Only apply pockets at half of the four-way crossings in the cross 3D pattern " +"and alternate the location of the pockets between heights where the pattern " +"is touching itself." +msgstr "" + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -5367,6 +5536,18 @@ msgid "" "surface." msgstr "" +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "" +"Only perform ironing on the very last layer of the mesh. This saves time if " +"the lower layers don't need a smooth surface finish." +msgstr "" + #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" @@ -5423,6 +5604,36 @@ msgid "" "edge of the mesh may result in a jagged edge on your print." msgstr "" +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "" + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "" + #: fdmprinter.def.json msgctxt "command_line_settings label" msgid "Command Line Settings" diff --git a/resources/i18n/fi/cura.po b/resources/i18n/fi_FI/cura.po similarity index 73% rename from resources/i18n/fi/cura.po rename to resources/i18n/fi_FI/cura.po index b5a95ad807..ae60ff98c6 100644 --- a/resources/i18n/fi/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Finnish\n" -"Language: Finnish\n" +"Language: fi_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fi\n" -"Country-Code: FI\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Tulostus keskeytetty" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Tukossa" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Vaatii toimenpiteitä" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Tulostus ei käynnisty" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Tätä tulostinta ei ole määritetty Ultimaker 3 -tulostinryhmän isännäksi." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Päättyy: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Tämä tulostin on {count} tulostimen Ultimaker 3 -ryhmän isäntä." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} on tulostanut työn '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Tulosta valmis" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Lisäosat" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Selaa lisäosia..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Asennetut lisäoset..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Laitteen asetukset" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Kerros" +msgid "X-Ray view" +msgstr "Kerrosnäkymä" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "GCode-tiedosto" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Hyväksyy GCode-määrittelyt ja lähettää ne Wi-Fi-yhteyden kautta Doodle3D WiFi-Boxiin." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D-tulostus" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Tulostus Doodle3D WiFi-Boxin avulla" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Tulostus Doodle3D WiFi-Boxin avulla" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Yhteyden muodostaminen Doodle3D Connectiin" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Peruuta" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Lähetetään tietoja Doodle3D Connectiin" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Tietojen lähetys Doodle3D Connectiin ei onnistu. Onko toinen työ yhä aktiivinen?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Tietoja tallennetaan Doodle3D Connectiin" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Tiedosto lähetetty Doodle3D Connectiin" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Avaa Connect..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Tulostus:" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Ota skannauslaitteet käyttöön..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Avaa Doodle3D Connect -verkkoliittymä" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Uuden työn aloittaminen ei onnistu, koska tulostin on varattu tai sitä ei ole yhdistetty." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Tulostustiedot" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Tämä tulostin ei tue USB-tulostusta, koska se käyttää UltiGCode-tyyppiä." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB-tulostus" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Uuden työn aloittaminen ei onnistu, koska tulostin ei tue USB-tulostusta." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Varoitus" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Tulostimelle ei löydetty laiteohjelmistoa (%s)." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G-tiedosto" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Tulostimen laiteohjelmisto" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Tallenna siirrettävälle asemalle {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Tallennetaan siirrettävälle asemalle {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Tallennetaan" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "Ei voitu tallentaa tiedostoon {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Tallennettu siirrettävälle asemalle {0} nimellä {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Ei löydetty tiedostonimeä yritettäessä kirjoittaa laitteeseen {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Poista" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Poista siirrettävä asema {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Ei voitu tallentaa siirrettävälle asemalle {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Virhe" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Tallennettu siirrettävälle asemalle {0} nimellä {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Tiedosto tallennettu" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Poista" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Poista siirrettävä asema {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Poistettu {0}. Voit nyt poistaa aseman turvallisesti." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Poista laite turvallisesti" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Siirrettävä asema" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Tulosta verkon kautta" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Tulosta verkon kautta" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Tulostimen käyttöoikeutta pyydetty. Hyväksy tulostimen pyyntö" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Yhteyden tila" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Yhteyden tila" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Yritä uudelleen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Lähetä käyttöoikeuspyyntö uudelleen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Tulostimen käyttöoikeus hyväksytty" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Tällä tulostimella tulostukseen ei ole käyttöoikeutta. Tulostustyön lähetys ei onnistu." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Pyydä käyttöoikeutta" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Lähetä tulostimen käyttöoikeuspyyntö" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Yhdistetty verkon kautta. Hyväksy tulostimen käyttöoikeuspyyntö." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Yhdistetty verkon kautta tulostimeen." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Yhdistetty verkon kautta tulostimeen. Ei käyttöoikeutta tulostimen hallintaan." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Tulostimen käyttöoikeuspyyntö hylättiin." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Käyttöoikeuspyyntö epäonnistui aikakatkaisun vuoksi." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Yhteys verkkoon menetettiin." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Yhteys tulostimeen menetettiin. Tarkista, onko tulostin yhdistetty." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Uuden tulostustyön aloittaminen ei onnistu, koska tulostin on varattu. Nykyinen tulostimen tila on %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Tulostimen tila" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Uuden tulostustyön aloittaminen ei onnistu. PrintCorea ei ole ladattu aukkoon {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Uuden tulostustyön aloittaminen ei onnistu. Materiaalia ei ole ladattu aukkoon {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Kelalle {0} ei ole tarpeeksi materiaalia." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "Eri PrintCore (Cura: {0}, tulostin: {1}) valittu suulakkeelle {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Eri materiaali (Cura: {0}, tulostin: {1}) valittu suulakkeelle {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "Print Core -tulostusydintä {0} ei ole kalibroitu oikein. Tulostimen XY-kalibrointi tulee suorittaa." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Haluatko varmasti tulostaa valitulla määrityksellä?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Tulostimen ja Curan määrityksen tai kalibroinnin välillä on ristiriita. Parhaat tulokset saavutetaan viipaloimalla aina tulostimeen asetetuille PrintCoreille ja materiaaleille." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Ristiriitainen määritys" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Lähetetään tietoja tulostimeen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Peruuta" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Lähetetään tietoja" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Tietojen lähetys tulostimeen ei onnistu. Onko toinen työ yhä aktiivinen?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Keskeytetään tulostus..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Tulostus keskeytetty. Tarkista tulostin" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Tulostus pysäytetään..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Tulostusta jatketaan..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Synkronoi tulostimen kanssa" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Haluatko käyttää nykyistä tulostimen määritystä Curassa?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Tulostimen PrintCoret tai materiaalit eivät vastaa tulostettavan projektin asetuksia. Parhaat tulokset saavutetaan viipaloimalla aina tulostimeen asetetuille PrintCoreille ja materiaaleille." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Yhdistä verkon kautta" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Tätä tulostinta ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Tämä tulostin on {count} tulostimen yhdistetyn Ultimaker 3 -ryhmän isäntä." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} on tulostanut työn '{job_name}'. Nouda työ ja vahvista alustan tyhjennys." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} on varattu työn {job_name} tulostamiseen. Muuta tulostimen määritys vastaamaan työtä, jotta tulostus alkaa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Uusien töiden lähettäminen (tilapäisesti) estetty, edellistä tulostustyötä lähetetään vielä." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Uuden tulostustyön lähetys ei onnistu: tätä 3D-tulostinta ei ole (vielä) määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Lähetetään tiedostoa {file_name} ryhmään {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "Lähetettiin {file_name} ryhmään {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Näytä tulostustyöt" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Avaa tulostustöiden käyttöliittymän selaimessa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Tulostustyön lähetys ryhmään {cluster_name} ei onnistu." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "On suositeltavaa päivittää laiteohjelmisto säännöllisesti, jotta voidaan varmistaa, että laitteessa {machine_name} on viimeisimmät ominaisuudet. Tämä voidaan tehdä laitteessa {machine_name} (verkkoon yhdistettynä) tai USB:n kautta." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Uusi tulostimen %s laiteohjelmisto saatavilla" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Lataa" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Päivitystietoja ei löytynyt." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "SolidWorks-tiedostoa avattaessa ilmeni virheitä! Tarkista, voiko tiedoston avata SolidWorks-ohjelmistossa ilman ongelmia." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "SolidWorks-osatiedosto" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "SolidWorks-kokoonpanotiedosto" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Määritä" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "%s:n käynnistyksen aikana ilmeni virhe!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "Muokkaa GCode-arvoa" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura kerää anonyymejä viipalointiin liittyviä tilastotietoja. Tämän voi poistaa käytöstä asetuksien kautta." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Kerätään tietoja" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Ohita" @@ -472,14 +743,19 @@ msgstr "GCode-tiedosto" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Kerrokset" +msgid "Layer view" +msgstr "Kerrosnäkymä" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura ei näytä kerroksia täsmällisesti, kun rautalankatulostus on käytössä" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Kerrosnäkymä" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "GIF-kuva" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Valittu materiaali ei sovellu käytettäväksi valitun laitteen tai kokoonpanon kanssa." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Viipalointi ei onnistu nykyisellä materiaalilla, sillä se ei sovellu käytettäväksi valitun laitteen tai kokoonpanon kanssa." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Viipalointi ei onnistu" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Viipalointi ei onnistu nykyisten asetuksien ollessa voimassa. Seuraavissa asetuksissa on virheitä: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Viipalointi ei onnistu, koska esitäyttötorni tai esitäytön sijainti tai sijainnit eivät kelpaa." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Ei viipaloitavaa, koska mikään malleista ei sovellu tulostustilavuuteen. Skaalaa tai pyöritä mallia, kunnes se on sopiva." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Käsitellään kerroksia" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Tiedot" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Määritä mallikohtaiset asetukset" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Suositeltu" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Mukautettu" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "3MF-tiedosto" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Suutin" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Selaa lisäosia" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Lisäosan tunnuksen hankkiminen epäonnistui tiedostosta {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Varoitus" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Lisäosien selain" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Kiinteä" +msgid "Solid view" +msgstr "Kiinteä näkymä" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "G-coden jäsennys" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "G-coden tiedot" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Varmista, että G-code on tulostimelle ja sen tulostusasetuksille soveltuva, ennen kuin lähetät tiedoston siihen. G-coden esitys ei välttämättä ole tarkka." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Cura-projektin 3MF-tiedosto" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Valitse päivitykset" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Tasaa alusta" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Ulkoseinämä" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Sisäseinämät" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Pintakalvo" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Täyttö" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Tuen täyttö" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Tukiliittymä" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Tuki" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Helma" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Siirtoliike" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Takaisinvedot" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Muu" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Esiviipaloitu tiedosto {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Ei ladattua materiaalia" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Tuntematon materiaali" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Uusien paikkojen etsiminen kappaleille" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Etsitään paikkaa" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Kaikille kappaleille ei löydy paikkaa tulostustilavuudessa." -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Paikkaa ei löydy" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Tiedosto on jo olemassa" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "Tiedosto {0} on jo olemassa. Haluatko varmasti kirjoittaa sen päälle?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Mukautettu" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Mukautettu materiaali" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Valittu materiaali ei sovellu käytettäväksi valitun laitteen tai kokoonpanon kanssa." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Yhteensopimaton materiaali" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Valitun materiaalin halkaisijan vuoksi materiaali ei sovellu käytettäväksi nykyisen tulostimen kanssa." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Kumoa" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Kumoa materiaalin halkaisijan muutokset." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" msgstr "Profiilin vienti epäonnistui tiedostoon {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." msgstr "Profiilin vienti epäonnistui tiedostoon {0}: Kirjoitin-lisäosa ilmoitti virheestä." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Profiili viety tiedostoon {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Viennin tiedot" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" msgstr "Profiilin tuonti epäonnistui tiedostosta {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Onnistuneesti tuotu profiili {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Profiililla {0} on tuntematon tiedostotyyppi tai se on vioittunut." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Mukautettu profiili" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Profiilista puuttuu laatutyyppi." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Laatutyyppiä {0} ei löydy nykyiselle kokoonpanolle." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "Tulostustilavuuden korkeutta on vähennetty tulostusjärjestysasetuksen vuoksi, jotta koroke ei osuisi tulostettuihin malleihin." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Tulostustilavuus" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Kappaleiden kertominen ja sijoittelu" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Sijoitetaan kappaletta" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Tapahtui vakava poikkeus, josta palautuminen ei onnistunut!

\n" -"

Tee virheraportti alla olevien tietojen perusteella osoitteessa http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Tapahtui vakava poikkeus, josta palautuminen ei onnistunut!

\n

Tee virheraportti alla olevien tietojen perusteella osoitteessa http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Avaa verkkosivu" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Ladataan laitteita..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Asetetaan näkymää..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Ladataan käyttöliittymää..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Vain yksi G-code-tiedosto voidaan ladata kerralla. Tiedoston {0} tuonti ohitettiin." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (leveys)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (korkeus)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Alustan muoto" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Alkukohta keskellä" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Lämmitettävä pöytä" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "GCode-tyyppi" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X väh." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Etäisyys tulostuspään vasemmalta puolelta suuttimen keskikohtaan. Käytetään estämään aiempien tulosteiden ja tulostuspään yhteentörmäyksiä, kun tulostetaan yksi kerrallaan." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y väh." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Etäisyys tulostuspään etupuolelta suuttimen keskikohtaan. Käytetään estämään aiempien tulosteiden ja tulostuspään yhteentörmäyksiä, kun tulostetaan yksi kerrallaan." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X enint." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Etäisyys tulostuspään oikealta puolelta suuttimen keskikohtaan. Käytetään estämään aiempien tulosteiden ja tulostuspään yhteentörmäyksiä, kun tulostetaan yksi kerrallaan." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y enint." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Etäisyys tulostuspään takapuolelta suuttimen keskikohtaan. Käytetään estämään aiempien tulosteiden ja tulostuspään yhteentörmäyksiä, kun tulostetaan yksi kerrallaan." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Korokkeen korkeus" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Suuttimen kärjen ja korokejärjestelmän (X- ja Y-akselit) välinen korkeusero. Käytetään estämään aiempien tulosteiden ja korokkeen yhteentörmäyksiä, kun tulostetaan yksi kerrallaan." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Suulakkeiden määrä" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Tulostimen tukema tulostuslangan nimellinen halkaisija. Materiaali ja/tai profiili korvaa tarkan halkaisijan." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Materiaalin halkaisija" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Suuttimen koko" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Aloita GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "GCode-komennot, jotka suoritetaan aivan alussa." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Lopeta GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "GCode-komennot, jotka suoritetaan aivan lopussa." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Suutinasetukset" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Suuttimen X-siirtymä" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Suuttimen Y-siirtymä" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Suulake – aloita Gcode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Suulake – lopeta Gcode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D-asetukset" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Tallenna" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Tulosta kohteeseen %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Suulakkeen lämpötila: %1/%2 °C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Pöydän lämpötila: %1/%2 °C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Tulosta" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Muutosloki" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Tuntemattoman virheen koodi: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Yhdistä verkkotulostimeen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Tulosta suoraan tulostimeen verkon kautta yhdistämällä tulostin verkkoon verkkokaapelilla tai yhdistämällä tulostin Wi-Fi-verkkoon. Jos Curaa ei yhdistetä tulostimeen, GCode-tiedostot voidaan silti siirtää tulostimeen USB-aseman avulla.\n" -"\n" -"Valitse tulostin alla olevasta luettelosta:" +msgstr "Tulosta suoraan tulostimeen verkon kautta yhdistämällä tulostin verkkoon verkkokaapelilla tai yhdistämällä tulostin Wi-Fi-verkkoon. Jos Curaa ei yhdistetä tulostimeen, GCode-tiedostot voidaan silti siirtää tulostimeen USB-aseman avulla.\n\nValitse tulostin alla olevasta luettelosta:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Lisää" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Muokkaa" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Poista" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Päivitä" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Jos tulostinta ei ole luettelossa, lue verkkotulostuksen vianetsintäopas" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Tyyppi" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Tuntematon" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Laiteohjelmistoversio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Osoite" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "Tämän osoitteen tulostin ei ole vielä vastannut." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Yhdistä" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Tulostimen osoite" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Anna verkon tulostimen IP-osoite tai isäntänimi." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "OK" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Yhdistä tulostimeen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Lataa tulostimen määritys Curaan" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Aktivoi määritys" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Tätä tulostinta ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Tämä tulostin on %1 tulostimen yhdistetyn Ultimaker 3 -ryhmän isäntä" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Tulosta verkon kautta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Tulosta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Tulostetaan" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Varattu" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Valmis" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Valmistellaan" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Saatavilla" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Valmistunut: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Tyhjennä alusta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Valmistellaan tulostusta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Ei hyväksy tulostustöitä" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Avaa tulostöiden sivun oletusselaimessa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Näytä tulostustyöt" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "TULOSTINRYHMÄ" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Tulostustyöt" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Tulostetaan" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Jonossa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Odotetaan määrityksen muutosta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Tulostimet" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Näytä tulostimet" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Cura SolidWorks -laajennuksen määritys" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Viedyn STL:n oletuslaatu:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Kysy aina" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Käytä aina hienoa laatua" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Käytä aina karkeaa laatua" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Tuo SolidWorks-tiedosto STL-muodossa..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Viedyn STL:n laatu" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Laatu" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Karkea" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Hieno" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Muuta aktiivisia jälkikäsittelykomentosarjoja" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Näyttötapa: Kerrokset" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Värimalli" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Materiaalin väri" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Linjojen tyyppi" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Yhteensopivuustila" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Näytä siirtoliikkeet" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Näytä avustimet" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Näytä kuori" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Näytä täyttö" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Näytä vain yläkerrokset" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Näytä 5 yksityiskohtaista kerrosta ylhäällä" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Yläosa/alaosa" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Sisäseinämä" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Tasoitus" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Valitse asetukset" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Valitse tätä mallia varten mukautettavat asetukset" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Suodatin..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Näytä kaikki" @@ -1613,27 +2083,45 @@ msgstr "Avaa" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Etsi ja päivitä laajennuksia" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Tässä on luettelo muiden valmistajien laajennuksista." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Päivitä" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Asennettu" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Lisäosan lisenssisopimus" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " lisäosa sisältää lisenssin.\nLisenssi on hyväksyttävä lisäosan asentamista varten.\nHyväksytkö alla olevat ehdot?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Hyväksy" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Hylkää" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Kaikki on kunnossa! CheckUp on valmis." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Ei yhteyttä tulostimeen" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Tulostin ei hyväksy komentoja" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "Huolletaan. Tarkista tulostin" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Yhteys tulostimeen menetetty" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Tulostetaan..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Keskeytetty" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Valmistellaan..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Poista tuloste" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Jatka" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Keskeytä" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Keskeytä tulostus" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Keskeytä tulostus" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Haluatko varmasti keskeyttää tulostuksen?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Olet mukauttanut profiilin asetuksia.\n" -"Haluatko säilyttää vai hylätä nämä asetukset?" +msgstr "Olet mukauttanut profiilin asetuksia.\nHaluatko säilyttää vai hylätä nämä asetukset?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Mukautettu" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Kysy aina" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Hylkää äläkä kysy uudelleen" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Säilytä äläkä kysy uudelleen" @@ -2038,7 +2524,7 @@ msgstr "Tarkista kaikki" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Laskettu" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Yksikkö" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Yleiset" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Kieli:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Valuutta:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Teema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Sovellus on käynnistettävä uudelleen, jotta nämä muutokset tulevat voimaan." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Viipaloi automaattisesti, kun asetuksia muutetaan." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Viipaloi automaattisesti" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Näyttöikkunan käyttäytyminen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Korosta mallin vailla tukea olevat alueet punaisella. Ilman tukea nämä alueet eivät tulostu kunnolla." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Näytä uloke" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Siirtää kameraa siten, että valittuna oleva malli on näkymän keskellä." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Keskitä kamera kun kohde on valittu" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Pitääkö Curan oletusarvoinen zoom-toimintatapa muuttaa päinvastaiseksi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Käännä kameran zoomin suunta päinvastaiseksi." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Tuleeko zoomauksen siirtyä hiiren suuntaan?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Zoomaa hiiren suuntaan" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Pitäisikö alustalla olevia malleja siirtää niin, etteivät ne enää leikkaa toisiaan?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Varmista, että mallit ovat erillään" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Pitäisikö tulostusalueella olevia malleja siirtää alas niin, että ne koskettavat tulostusalustaa?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Pudota mallit automaattisesti alustalle" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Näytä varoitusviesti gcode-lukijassa." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Gcode-lukijan varoitusviesti" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Pakotetaanko kerros yhteensopivuustilaan?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Pakota kerrosnäkymän yhteensopivuustila (vaatii uudelleenkäynnistyksen)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Tiedostojen avaaminen ja tallentaminen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Pitäisikö mallit skaalata tulostustilavuuteen, jos ne ovat liian isoja?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Skaalaa suuret mallit" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Malli voi vaikuttaa erittäin pieneltä, jos sen koko on ilmoitettu esimerkiksi metreissä eikä millimetreissä. Pitäisikö nämä mallit suurentaa?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Skaalaa erittäin pienet mallit" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Pitäisikö tulostustyön nimeen lisätä automaattisesti tulostimen nimeen perustuva etuliite?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Lisää laitteen etuliite työn nimeen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Näytetäänkö yhteenveto, kun projektitiedosto tallennetaan?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Näytä yhteenvetoikkuna, kun projekti tallennetaan" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Projektitiedoston avaamisen oletustoimintatapa" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Projektitiedoston avaamisen oletustoimintatapa: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Kysy aina" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Avaa aina projektina" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Tuo mallit aina" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Kun olet tehnyt muutokset profiiliin ja vaihtanut toiseen, näytetään valintaikkuna, jossa kysytään, haluatko säilyttää vai hylätä muutokset. Tässä voit myös valita oletuskäytöksen, jolloin valintaikkunaa ei näytetä uudelleen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Kumoa profiili" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Tietosuoja" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Pitäisikö Curan tarkistaa saatavilla olevat päivitykset, kun ohjelma käynnistetään?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Tarkista päivitykset käynnistettäessä" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Pitäisikö anonyymejä tietoja tulosteesta lähettää Ultimakerille? Huomaa, että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä eikä tallenneta." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Lähetä (anonyymit) tulostustiedot" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Tulostimet" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "Odotetaan tulostustyötä" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profiilit" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Profiilin vienti" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materiaalit" @@ -2472,12 +2958,12 @@ msgid "Import Material" msgstr "Tuo materiaali" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" msgstr "Materiaalin tuominen epäonnistui: %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "Materiaalin tuominen onnistui: %1" @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Vie materiaali" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" msgstr "Materiaalin vieminen epäonnistui kohteeseen %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Materiaalin vieminen onnistui kohteeseen %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Lisää tulostin" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Lisää tulostin" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Ulkoseinämä" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Sisäseinämät" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Pintakalvo" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Täyttö" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Tuen täyttö" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Tukiliittymä" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Tuki" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Siirtoliike" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Takaisinvedot" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Muu" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00 h 00 min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön kanssa.\n" -"Cura hyödyntää seuraavia avoimeen lähdekoodiin perustuvia projekteja:" +msgstr "Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön kanssa.\nCura hyödyntää seuraavia avoimeen lähdekoodiin perustuvia projekteja:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Data Interchange Format" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Tieteellisen laskennan tukikirjasto" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "SVG-kuvakkeet" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profiili:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Jotkut asetusten ja ohitusten arvot eroavat profiiliin tallennetuista arvoista.\n\nAvaa profiilin hallinta napsauttamalla." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Haku…" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Kopioi arvo kaikkiin suulakepuristimiin" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Piilota tämä asetus" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Älä näytä tätä asetusta" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Pidä tämä asetus näkyvissä" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Määritä asetusten näkyvyys..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Jotkin piilotetut asetukset käyttävät arvoja, jotka eroavat normaaleista lasketuista arvoista.\n" -"\n" -"Tee asetuksista näkyviä napsauttamalla." +msgstr "Jotkin piilotetut asetukset käyttävät arvoja, jotka eroavat normaaleista lasketuista arvoista.\n\nTee asetuksista näkyviä napsauttamalla." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Tämän asetuksen arvo eroaa profiilin arvosta.\n" -"\n" -"Palauta profiilin arvo napsauttamalla." +msgstr "Tämän asetuksen arvo eroaa profiilin arvosta.\n\nPalauta profiilin arvo napsauttamalla." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Tämä asetus on normaalisti laskettu, mutta sillä on tällä hetkellä absoluuttinen arvo.\n" -"\n" -"Palauta laskettu arvo napsauttamalla." +msgstr "Tämä asetus on normaalisti laskettu, mutta sillä on tällä hetkellä absoluuttinen arvo.\n\nPalauta laskettu arvo napsauttamalla." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Tulostuksen asennus" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Tulostuksen asennus ei käytössä\n" -"G-code-tiedostoja ei voida muokata" +msgstr "Tulostuksen asennus ei käytössä\nG-code-tiedostoja ei voida muokata" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00 h 00 min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Aikatiedot" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Tulostusaika" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1 m / ~ %2 g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Suositeltu tulostuksen asennus

Tulosta valitun tulostimen, materiaalin ja laadun suositelluilla asetuksilla." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Mukautettu tulostuksen asennus

Tulosta hallitsemalla täysin kaikkia viipalointiprosessin vaiheita." @@ -2807,7 +3253,7 @@ msgstr "&Näytä" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automaattinen: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Ei tulostinta yhdistettynä" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Kuuma pää" +msgid "Extruder" +msgstr "Suulake" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Kuuman pään kohdelämpötila. Kuuma pää lämpenee tai viilenee kohti tätä lämpötilaa. Jos asetus on 0, kuuman pään lämmitys sammutetaan." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Tämän suulakkeen nykyinen lämpötila." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Tämän suulakkeen materiaalin väri." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Tämän suulakkeen materiaali." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Tähän suulakkeeseen liitetty suutin." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Alusta" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Lämmitettävän pöydän kohdelämpötila. Pöytä lämpenee tai viilenee kohti tätä lämpötilaa. Jos asetus on 0, pöydän lämmitys sammutetaan." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Lämmitettävän pöydän nykyinen lämpötila." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Lämmitettävän pöydän esilämmityslämpötila." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Peruuta" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Esilämmitä" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Lämmitä pöytä ennen tulostusta. Voit edelleen säätää tulostinta sen lämmitessä, eikä sinun tarvitse odottaa pöydän lämpiämistä, kun olet valmis tulostamaan." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Aktiivinen tulostustyö" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Työn nimi" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Tulostusaika" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Aikaa jäljellä arviolta" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Määritä asetusten näkyvyys..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Lataa 3D-malli" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Valmiina viipaloimaan" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Viipaloidaan..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Valmis: %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Viipalointi ei onnistu" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Viipalointi ei käytettävissä" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Valmistele" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Peruuta" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Valitse aktiivinen tulostusväline" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Avaa tiedosto(t)" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Ohje" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Avaa tiedosto" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Näyttötapa" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Asetukset" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Uusi projekti" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Haluatko varmasti aloittaa uuden projektin? Se tyhjentää alustan ja kaikki tallentamattomat asetukset." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Asenna laajennus" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Avaa tiedosto(t)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Löysimme vähintään yhden Gcode-tiedoston valitsemiesi tiedostojen joukosta. Voit avata vain yhden Gcode-tiedoston kerrallaan. Jos haluat avata Gcode-tiedoston, valitse vain yksi." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Älä näytä projektin yhteenvetoa tallennettaessa" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Tallenna" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Valmistele" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Valvo" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Kerroksen korkeus" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Tulostusnopeus" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Hitaammin" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Nopeammin" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Täyttö" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Ei täyttöä jättää mallin ontoksi ja lujuudeltaan alhaiseksi." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Harva (20 %) täyttö antaa mallille keskimääräisen lujuuden." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Tiheä (50 %) täyttö antaa mallille keskimääräistä paremman lujuuden." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Kiinteä (100 %) täyttö tekee mallista täysin umpinaisen." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Asteittainen" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Asteittainen täyttö lisää täytön tiheyttä vähitellen yläosaa kohti." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Ota asteittainen käyttöön" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Muodosta tuki" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Muodosta rakenteita, jotka tukevat mallin ulokkeita sisältäviä osia. Ilman tukirakenteita kyseiset osat luhistuvat tulostuksen aikana." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Tuen suulake" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Valitse tukena käytettävä suulakepuristin. Näin mallin alle rakennetaan tukirakenteita estämään mallin painuminen tai tulostuminen ilmaan." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Alustan tarttuvuus" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Ota reunuksen tai pohjaristikon tulostus käyttöön. Tämä lisää kappaleen ympärille tai alle tasaisen alueen, joka on helppo leikata pois myöhemmin." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Tarvitsetko apua tulosteiden parantamiseen?
Lue Ultimakerin vianmääritysoppaat" @@ -3406,8 +3838,8 @@ msgstr "Tarvitsetko apua tulosteiden parantamiseen?
Lue Ultimake msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tulosta valittu malli asetuksella %1" +msgstr[1] "Tulosta valitut mallit asetuksella %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Moottorin loki" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Materiaali" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Tarkista materiaalin yhteensopivuus" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Napsauta ja tarkista materiaalin yhteensopivuus sivustolla Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profiili:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Jotkut asetusten ja ohitusten arvot eroavat profiiliin tallennetuista arvoista.\n" -"\n" -"Avaa profiilin hallinta napsauttamalla." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Toiminnon avulla voidaan vaihtaa laitteen asetuksia (esim. tulostustilavuus, suuttimen koko yms.)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Laitteen asetukset -toiminto" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Näyttää kerrosnäkymän." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Kerrosnäkymä" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Tukee X3D-tiedostojen lukemista." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "X3D-lukija" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Kirjoittaa GCodea tiedostoon." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "GCode-kirjoitin" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Vedosta kaikkien asetusten sisällöt HTML-tiedostoon." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Jumala-tila" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Hyväksyy GCode-määrittelyt ja lähettää ne Wi-Fi-yhteyden kautta Doodle3D WiFi-Boxiin." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Näyttää viimeisimmän tarkistetun version jälkeen tapahtuneet muutokset." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Muutosloki" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Luo tasoitettu laatumuutosten profiili." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Profiilin tasoitus" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Hyväksyy GCode-määrittelyt ja lähettää ne tulostimeen. Lisäosa voi myös päivittää laiteohjelmiston." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "USB-tulostus" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Tukee irrotettavan aseman kytkemistä lennossa ja sille kirjoittamista." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Irrotettavan aseman tulostusvälineen laajennus" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Ultimaker 3 -tulostimien verkkoyhteyksien hallinta" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "UM3-verkkoyhteys" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "UM3-verkkoyhteys (klusteri)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Tarkistaa laiteohjelmistopäivitykset." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Laiteohjelmiston päivitysten tarkistus" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Mahdollistaa tiettyjen tiedostojen avaamisen SolidWorks-ohjelmiston kautta. Tämän jälkeen tiedostot muunnetaan ja ladataan Curaan." #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "SolidWorks-integrointi" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Lisäosa, jonka avulla käyttäjät voivat luoda komentosarjoja jälkikäsittelyä varten" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Jälkikäsittely" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Tallentaa automaattisesti lisäasetukset, koneet ja profiilit muutosten jälkeen." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Automaattitallennus" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Lähettää anonyymiä viipalointitietoa. Voidaan lisäasetuksista kytkeä pois käytöstä." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Viipalointitiedot" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Mahdollistaa XML-pohjaisten materiaaliprofiilien lukemisen ja kirjoittamisen." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Materiaaliprofiilit" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Tukee profiilien tuontia aikaisemmista Cura-versioista." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Aikaisempien Cura-profiilien lukija" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Tukee profiilien tuontia GCode-tiedostoista." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "GCode-profiilin lukija" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Näyttää kerrosnäkymän." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Kerrosnäkymä" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Päivittää kokoonpanon versiosta Cura 2.5 versioon Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Päivitys versiosta 2.5 versioon 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Päivittää kokoonpanon versiosta Cura 2.7 versioon Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Päivitys versiosta 2.7 versioon 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Päivittää kokoonpanon versiosta Cura 2.6 versioon Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Päivitys versiosta 2.6 versioon 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Päivittää kokoonpanon versiosta Cura 2.1 versioon Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Päivitys versiosta 2.1 versioon 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Päivittää kokoonpanon versiosta Cura 2.2 versioon Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Päivitys versiosta 2.2 versioon 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Mahdollistaa tulostettavien geometrioiden luomisen 2D-kuvatiedostoista." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Kuvanlukija" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Linkki CuraEngine-viipalointiin taustalla." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "CuraEngine-taustaosa" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Mallikohtaisten asetusten muokkaus." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Mallikohtaisten asetusten työkalu" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Tukee 3MF-tiedostojen lukemista." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "3MF-lukija" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Etsi, hallinnoi ja asenna uusia laajennuksia." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Lisäosien selain" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Näyttää normaalin kiinteän verkkonäkymän." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Kiinteä näkymä" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Mahdollistaa GCode-tiedostojen lataamisen ja näyttämisen." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "GCode-lukija" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Tukee Cura-profiilien vientiä." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Cura-profiilin kirjoitin" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Tukee 3MF-tiedostojen kirjoittamista." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "3MF-kirjoitin" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Ultimaker-laitteiden toimintojen käyttö (esim. pöydän tasaaminen, päivitysten valinta yms.)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Ultimaker-laitteen toiminnot" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Tukee Cura-profiilien tuontia." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Cura-profiilin lukija" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Kerros" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Hyväksyy GCode-määrittelyt ja lähettää ne Wi-Fi-yhteyden kautta Doodle3D WiFi-Boxiin." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Doodle3D-tulostus" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Tulostus Doodle3D:n avulla" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Tulostus:" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Ota skannauslaitteet käyttöön..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "X3G-tiedosto" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Tallennetaan siirrettävälle asemalle {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Ei voitu tallentaa tiedostoon {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Muista, että SolidWorks-tiedosto on avattava uudelleen manuaalisesti. Mallin lataaminen uudelleen ei toimi." + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Kerrokset" + +#~ msgid "Browse plugins" +#~ msgstr "Selaa laajennuksia" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Kiinteä" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Tiedosto {0} on jo olemassa. Haluatko varmasti kirjoittaa sen päälle?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Profiilin vienti epäonnistui tiedostoon {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Profiilin vienti epäonnistui tiedostoon {0}: Kirjoitin-lisäosa ilmoitti virheestä." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Profiili viety tiedostoon {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Profiilin tuonti epäonnistui tiedostosta {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Doodle3D-asetukset" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Tulosta kohteeseen %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Suulakkeen lämpötila: %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Pöydän lämpötila: %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Näyttötapa: Kerrokset" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Materiaalin tuominen epäonnistui: %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Materiaalin tuominen onnistui: %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Materiaalin vieminen epäonnistui kohteeseen %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Materiaalin vieminen onnistui kohteeseen %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Kuuma pää" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Näyttötapa" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Tulosta" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0 %" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Ei täyttöä jättää mallin ontoksi ja lujuudeltaan alhaiseksi." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20 %" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Harva (20 %) täyttö antaa mallille keskimääräisen lujuuden." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50 %" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Tiheä (50 %) täyttö antaa mallille keskimääräistä paremman lujuuden." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100 %" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Kiinteä (100 %) täyttö tekee mallista täysin umpinaisen." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Asteittainen" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Tukee X3G-tiedostojen kirjoittamista." + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G-kirjoitin" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/fi/fdmextruder.def.json.po b/resources/i18n/fi_FI/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/fi/fdmextruder.def.json.po rename to resources/i18n/fi_FI/fdmextruder.def.json.po index c541c91362..ea50325417 100644 --- a/resources/i18n/fi/fdmextruder.def.json.po +++ b/resources/i18n/fi_FI/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:31+0200\n" "Last-Translator: Bothof \n" "Language-Team: Finnish\n" -"Language: Finnish\n" +"Language: fi_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fi\n" -"Country-Code: FI\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "Tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursot #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Suuttimen tunnus" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Suulakeryhmän suulakkeen tunnus, kuten \"AA 0.4\" ja \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/fi/fdmprinter.def.json.po b/resources/i18n/fi_FI/fdmprinter.def.json.po similarity index 89% rename from resources/i18n/fi/fdmprinter.def.json.po rename to resources/i18n/fi_FI/fdmprinter.def.json.po index 1a265dffb2..fb73e2e39d 100644 --- a/resources/i18n/fi/fdmprinter.def.json.po +++ b/resources/i18n/fi_FI/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Finnish\n" -"Language: Finnish\n" +"Language: fi_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fi\n" -"Country-Code: FI\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "3D-tulostinmallin nimi." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Näytä laitteen variantit" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"GCode-komennot, jotka suoritetaan aivan alussa – eroteltuina merkillä \n" -"." +msgstr "GCode-komennot, jotka suoritetaan aivan alussa – eroteltuina merkillä \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"GCode-komennot, jotka suoritetaan aivan lopussa – eroteltuina merkillä \n" -"." +msgstr "GCode-komennot, jotka suoritetaan aivan lopussa – eroteltuina merkillä \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "Materiaalin GUID. Tämä määritetään automaattisesti. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Odota alustan lämpenemistä" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Lisätäänkö komento, jolla odotetaan alustan lämpötilan saavuttamis #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Odota suuttimen lämpenemistä" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Odotetaanko suuttimen lämpötilan saavuttamista alussa." #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Sisällytä materiaalilämpötilat" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Sisällytetäänkö suuttimen lämpötilakomennot GCoden alkuun. Kun sta #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Sisällytä alustan lämpötila" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Sisällytetäänkö alustan lämpötilakomennot GCoden alkuun. Kun aloit #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Laitteen leveys" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "Tulostettavan alueen leveys (X-suunta)." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Laitteen syvyys" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "Tulostettavan alueen syvyys (Y-suunta)." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Alustan muoto" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Soikea" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Laitteen korkeus" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "Tulostettavan alueen korkeus (Z-suunta)." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Sisältää lämmitettävän alustan" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Sisältääkö laite lämmitettävän alustan." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "On keskikohdassa" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Luotavan GCoden tyyppi." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (volymetrinen)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "Suuttimen kärjen ja korokejärjestelmän (X- ja Y-akselit) välinen kor #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Suuttimen tunnus" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Suulakeryhmän suulakkeen tunnus, kuten \"AA 0.4\" ja \"BB 0.8\"." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "Yhden seinämälinjan leveys. Koskee kaikkia muita paitsi ulommaista sei #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Yläpinnan pintakalvon linjan leveys" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Tulosteen yläosan alueiden yhden linjan leveys." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Yhden esitäyttötornin linjan leveys." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Alkukerroksen linjaleveys" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Ensimmäisen kerroksen linjaleveyden kerroin. Sen suurentaminen voi parantaa tarttuvuutta pöytään." #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Kuori" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Ulkoseinämän suulake" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Ulkoseinämän tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Sisäseinämien suulake" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "Sisäseinämien tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Seinämän paksuus" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Seinämien paksuus vaakatasossa. Tämä arvo jaettuna seinämälinjan leveysarvolla määrittää seinämien lukumäärän." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Siirtoliikkeen etäisyys ulkoseinämän jälkeen Z-sauman piilottamiseks #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Yläpinnan pintakalvon suulake" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "Ylimmän pintakalvon tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Yläpinnan pintakalvokerrokset" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Ylimpien pintakalvokerrosten määrä. Yleensä vain yksi ylin kerros riittää tuottamaan korkeampilaatuisia yläpintoja." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Yläpinnan pintakalvokuvio" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Ylimpien kerrosten kuvio." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Linjat" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Samankeskinen" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Siksak" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Yläpinnan pintakalvon linjojen suunnat" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Luettelo käytettävistä linjojen kokonaislukusuunnista, kun yläpinnan pintakalvokerroksilla käytetään linja- tai siksak-kuviota. Tämän luettelon elementtejä käytetään järjestyksessä kerrosten edetessä, ja kun luettelon loppu saavutetaan, aloitetaan taas alusta. Luettelon kohteet on erotettu pilkuilla, ja koko luettelo on hakasulkeiden sisällä. Oletusarvo on tyhjä luettelo, jolloin käytetään perinteisiä oletuskulmia (45 ja 135 astetta)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Ylä- ja alapuolen suulake" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Ylä- ja alapuolen pintakalvon tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "Kaikkialla" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Tulosta ohuet seinämät" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Tulostaa mallin kohtia, jotka ovat vaakasuunnassa suuttimen kokoa ohuempia." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Kaikkia monikulmioita kussakin kerroksessa koskeva siirtymien määrä. #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Alkukerroksen vaakalaajennus" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Kaikkia monikulmioita ensimmäisessä kerroksessa koskeva siirtymien määrä. Negatiivisella arvolla kompensoidaan ensimmäisen kerroksen litistymistä, joka tunnetaan \"elefantin jalkana\"." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Satunnainen" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Terävin kulma" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Y-koordinaatti kohdalle, jonka läheltä aloitetaan kunkin kerroksen osuuden tulostus." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Saumakulmien asetus" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Määritä, vaikuttavatko mallin ulkolinjan kulmat sauman sijaintiin. Ei mitään tarkoittaa, että kulmilla ei ole vaikutusta sauman sijaintiin. Piilota sauma -valinnalla sauman sijainti sisäkulmassa on todennäköisempää. Paljasta sauma -valinnalla sauman sijainti ulkokulmassa on todennäköisempää. Piilota tai paljasta sauma -valinnalla sauman sijainti sisä- tai ulkokulmassa on todennäköisempää." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Ei mitään" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Piilota sauma" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Paljasta sauma" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Piilota tai paljasta sauma" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Z-sauma suhteellinen" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Kun tämä on käytössä, Z-sauman koordinaatit ovat suhteessa kunkin osan keskikohtaan. Kun asetus on pois käytöstä, koordinaatit määrittävät absoluuttisen sijainnin alustalla." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Kun mallissa on pieniä pystyrakoja, ylä- ja alapuolen pintakalvon tekemiseen näihin kapeisiin paikkoihin voi kulua noin 5 % ylimääräistä laskenta-aikaa. Poista siinä tapauksessa tämä asetus käytöstä." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Pintakalvojen ulkopuolisten lisäseinämien määrä" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Korvaa ylä-/alakuvion uloimman osan samankeskisillä linjoilla. Yhden tai kahden linjan käyttäminen parantaa kattoja, jotka alkavat täyttömateriaalin keskeltä." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Täyttö" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Täytön suulake" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Täytön tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Täyttökuvio" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Tulostettava täyttömateriaalin kuvio. Linja- ja siksak-täytöt vaihtavat suuntaa kerrosten välillä, mikä vähentää materiaalikustannuksia. Ristikko-, kolmio-, kuutio-, nelitaho- ja samankeskinen-kuviot tulostetaan kokonaisuudessaan kuhunkin kerrokseen. Kuutio- ja nelitaho-täytöt muuttuvat kerroksittain, jotta vahvuus jakautuu tasaisemmin kussakin suunnassa." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Tulostettava täyttömateriaalin kuvio. Linja- ja siksak-täytöt vaihtavat suuntaa kerrosten välillä, mikä vähentää materiaalikustannuksia. Ristikko-, kolmio-, kuutio-, oktetti-, neljänneskuutio- ja samankeskinen-kuviot tulostetaan kokonaisuudessaan kuhunkin kerrokseen. Kuutio-, neljänneskuutio- ja oktettitäytöt muuttuvat kerroksittain, jotta vahvuus jakautuu tasaisemmin kussakin suunnassa." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Kuution alajako" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Nelitaho" +msgid "Octet" +msgstr "Oktetti" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Neljänneskuutio" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Siksak" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Risti" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Risti 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Yhdistä täyttölinjat" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Yhdistä päät, joissa täyttökuvio kohtaa sisäseinämän käyttämällä linjoja, jotka seuraavat sisäseinämän muotoa. Tämän asetuksen ottaminen käyttöön voi saada täytön tarttumaan seinämiin paremmin ja vähentää täytön vaikutusta pystypintojen laatuun. Tämän asetuksen poistaminen käytöstä vähentää käytettävän materiaalin määrää." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Pintakalvon limityksen prosentti" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Limityksen määrä pintakalvon ja seinämien välillä linjaleveyden prosenttina. Pienellä limityksellä seinämät liittyvät tukevasti pintakalvoon. Tämä on pintakalvon linjojen ja sisimmän seinämän keskimääräisten linjaleveyksien prosenttiluku." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Älä muodosta tätä pienempiä täyttöalueita (käytä sen sijaan pintakalvoa)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Laajenna pintakalvot täyttöalueelle" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Pintakalvon poistoleveys" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Laajenna tasaisten pintojen ylä- ja/tai alapuolen pintakalvot. Oletuksena pintakalvot päättyvät täyttöalueen ympäröivien seinämälinjojen alla, mutta tämä voi aiheuttaa reikiä, kun täyttöalueen tiheys on alhainen. Tämä asetus laajentaa pintakalvot seinämälinjoja pidemmälle niin, että seuraavan kerroksen täyttöalue lepää pintakalvon päällä." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Suurin poistettavien pintakalvoalueiden leveys. Kaikki tätä arvoa pienemmät pintakalvoalueet poistuvat. Tästä voi olla apua mallin kaltevien pintojen ylä-/alapintakalvon tulostukseen käytettävän ajan ja materiaalin rajoittamisessa." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Ylimpien pintakalvojen laajennus täyttöalueelle" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Yläpintakalvon poistoleveys" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Laajenna ylimmät pintakalvot (alueet, joiden yläpuolella on ilmaa) niin, että ne tukevat yläpuolista täyttöaluetta." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Suurin poistettavien yläpintakalvoalueiden leveys. Kaikki tätä arvoa pienemmät pintakalvoalueet poistuvat. Tästä voi olla apua mallin kaltevien pintojen yläpintakalvon tulostukseen käytettävän ajan ja materiaalin rajoittamisessa." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Alimpien pintakalvojen laajennus täyttöalueelle" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Alapintakalvon poistoleveys" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Laajenna alimmat pintakalvot (alueet, joiden alapuolella on ilmaa) niin, että ylä- ja alapuoliset täyttökerrokset ankkuroivat ne." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Suurin poistettavien alapintakalvoalueiden leveys. Kaikki tätä arvoa pienemmät pintakalvoalueet poistuvat. Tästä voi olla apua mallin kaltevien pintojen alapintakalvon tulostukseen käytettävän ajan ja materiaalin rajoittamisessa." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Pintakalvon laajennuksen etäisyys" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Pintakalvojen laajennusetäisyys täyttöalueelle. Oletusetäisyys riittää kuromaan umpeen täyttölinjojen väliset raot, ja se estää reikien ilmestymisen pintakalvoon seinämän liitoskohdassa, kun täytön tiheys on alhainen." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Etäisyys, jonka verran pintakalvot laajentuvat täyttöön. Suuremmat arvot saavat pintakalvon kiinnittymään paremmin täyttökuvioon ja viereisten kerrosten seinämät tarttumaan paremmin pintakalvoon. Pienemmät arvot vähentävät käytettävän materiaalin määrää." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Yläpintakalvon laajennuksen etäisyys" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Etäisyys, jonka verran yläpintakalvot laajentuvat täyttöön. Suuremmat arvot saavat pintakalvon kiinnittymään paremmin täyttökuvioon ja yllä olevan kerroksen seinämät tarttumaan paremmin pintakalvoon. Pienemmät arvot vähentävät käytettävän materiaalin määrää." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Alapintakalvon laajennuksen etäisyys" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Etäisyys, jonka verran alapintakalvot laajentuvat täyttöön. Suuremmat arvot saavat pintakalvon kiinnittymään paremmin täyttökuvioon ja tarttumaan paremmin alla olevan kerroksen seinämiin. Pienemmät arvot vähentävät käytettävän materiaalin määrää." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "Nopeus, jolla kaikki sisäseinämät tulostetaan. Sisäseinämän tulost #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Yläpinnan pintakalvonopeus" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Yläpinnan pintakalvokerrosten tulostamiseen käytettävä nopeus." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Ylä-/alakerrosten tulostamiseen käytettävä nopeus." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "Kiihtyvyys, jolla kaikki sisäseinämät tulostetaan." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Yläpinnan pintakalvon kiihtyvyys" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Kiihtyvyys, jolla yläpinnan pintakalvokerrokset tulostetaan." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Kiihtyvyys, jolla ylä-/alakerrokset tulostetaan." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Kaikkien sisäseinämien tulostuksen nopeuden hetkellinen maksimimuutos. #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Yläpinnan pintakalvon nykäisy" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Yläpinnan pintakalvokerrosten tulostuksen nopeuden hetkellinen maksimimuutos." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Ylä-/alakerrosten tulostuksen nopeuden hetkellinen maksimimuutos." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Siksak" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Risti" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Yhdistä siksakit. Tämä lisää siksak-tukirakenteen lujuutta." #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Riko tuki lohkoihin" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Ohita jotkin tukilinjojen yhdistämiset, jotta tukirakenne on helpompi rikkoa. Tämä asetus soveltuu siksak-tukitäyttökuvioon." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Tukilohkon koko" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Jätä tukilinjojen välinen yhdistäminen pois joka N. millimetri, jotta tukirakenne on helpompi rikkoa." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Tukilohkolinjaluku" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Ohita joka N. yhdistämislinja, jotta tukirakenne on helpompi rikkoa." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "Kaikkia tukimonikulmioita kussakin kerroksessa koskeva siirtymien määr #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Tuen täyttökerroksen paksuus" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Tuen täyttömateriaalin paksuus kerrosta kohti. Tämän arvon tulee aina olla kerroksen korkeuden kerrannainen. Muissa tapauksissa se pyöristetään." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Asteittainen tuen täyttöarvo" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Määrä kertoja, joilla tuen täytön tiheyttä vähennetään puolella kauemmaksi yläpintojen alle siirryttäessä. Yläpintoja lähempänä olevista alueista tulee tiheämpiä enintään tuen täytön tiheyden arvoon asti." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Asteittaisen tuen täyttöarvon korkeus" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Tietyn tiheysarvon tuen täytön korkeus ennen puoleen tiheyteen vaihtamista." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"Vaakasuora etäisyys helman ja tulosteen ensimmäisen kerroksen välillä.\n" -"Tämä on minimietäisyys; useampia helmalinjoja käytettäessä ne ulottuvat tämän etäisyyden ulkopuolelle." +msgstr "Vaakasuora etäisyys helman ja tulosteen ensimmäisen kerroksen välillä.\nTämä on minimietäisyys; useampia helmalinjoja käytettäessä ne ulottuvat tämän etäisyyden ulkopuolelle." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Tulostaa reunuksen vain mallin ulkopuolelle. Tämä vähentää myöhemmin poistettavan reunuksen määrää, mutta se ei juurikaan vähennä pöydän tarttuvuutta." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Alkukerroksen Z-siirtymä" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "Suulaketta siirretään ensimmäisen kerroksen normaalista korkeudesta tällä määrällä. Se voi olla positiivinen (nostettu) tai negatiivinen (laskettu). Jotkin tulostuslankatyypit tarttuvat alustaan paremmin, jos suulaketta nostetaan hieman." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Z-siirtymän kapenevat kerrokset" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Kun tämä ei ole nolla, Z-siirtymä pienenee nollaan niin monen kerroksen matkalla. Kun arvo on 0, Z-siirtymä pysyy vakiona kaikille tulostuksen kerroksille." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Jos pohjaristikko on otettu käyttöön, tämä on ylimääräinen ristikkoalue malli ympärillä, jolle myös annetaan pohjaristikko. Tämän marginaalin kasvattaminen vahvistaa pohjaristikkoa, jolloin käytetään enemmän materiaalia ja tulosteelle jää vähemmän tilaa." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Pohjaristikon tasoitus" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Tällä asetuksella säädetään, kuinka paljon pohjaristikon ulkolinjan sisäkulmia pyöristetään. Sisäpuoliset kulmat pyöristetään puoliympyräksi, jonka säde on yhtä suuri kuin tässä annettu arvo. Asetuksella myös poistetaan pohjaristikon ulkolinjan reiät, jotka ovat pienempiä kuin tällainen ympyrä." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Pyyhi suuttimen vaihdon jälkeen tihkunut materiaali pois suuttimesta, k #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Esitäyttötornin poistoainemäärä" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Poistettavan tulostuslangan määrä esitäyttötornia pyyhittäessä. Poisto on hyödyllinen menetetyn tulostuslangan kompensointiin, silloin kun sitä tihkuu suuttimen ollessa ei-aktiivinen." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Vähennä Z-sauman näkyvyyttä tasoittamalla kierukoidut ääriviivat (Z-sauman pitäisi olla lähes näkymätön tulosteessa, mutta kerrosnäkymässä sen voi edelleen havaita). Ota huomioon, että tasoittaminen usein sumentaa pinnan pieniä yksityiskohtia." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Suhteellinen pursotus" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Käytä suhteellista pursotusta absoluuttisen pursotuksen sijaan. Suhteellisten E-askelten käyttö helpottaa Gcoden jälkikäsittelyä. Kaikki tulostimet eivät kuitenkaan tue sitä, ja se saattaa aiheuttaa hyvin vähäisiä poikkeamia materiaalin määrässä absoluuttisiin E-askeliin verrattuna. Tästä asetuksesta riippumatta pursotustila on aina absoluuttinen, ennen kuin mitään Gcode-komentosarjaa tuotetaan." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "kokeellinen!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Optimoi seinämien tulostusjärjestys" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optimoi seinämien tulostusjärjestys takaisinvetojen ja kuljetun etäisyyden vähentämiseksi. Useimmat osat hyötyvät tämän asetuksen käytöstä, mutta joissakin saattaa kestää kauemmin, joten vertaa tulostusajan arvioita optimointia käytettäessä ja ilman sitä." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Nopeus, jolla siirrytään vapaaliu'un aikana, suhteessa pursotusreitin nopeuteen. Arvoksi suositellaan hieman alle 100 %, sillä vapaaliukusiirron aikana paine Bowden-putkessa laskee." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Pintakalvojen ulkopuolisten lisäseinämien määrä" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Korvaa ylä-/alakuvion uloimman osan samankeskisillä linjoilla. Yhden tai kahden linjan käyttäminen parantaa kattoja, jotka alkavat täyttömateriaalin keskeltä." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Muuttaa ylä-/alakerrosten tulostussuuntaa. Normaalisti ne tulostetaan vain vinottain. Tämä asetus lisää vain X- ja vain Y -suunnat." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Risti 3D:n taskujen koko" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Taskujen koko nelisuuntaisissa risteyksissä risti 3D -kuviossa korkeuksissa, joissa kuvio koskettaa itseään." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Vuoroittaiset risti 3D -taskut" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Käytä taskuja vain puolessa nelisuuntaisista risteyksistä risti 3D -kuviossa ja vuorottele taskujen sijainnit sellaisten korkeuksien välillä, joissa kuvio koskettaa itseään." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Tulostaa täytön silloin tällöin, niin että tulostuslanka kiertyy sa #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Spagettitäyttö vaiheittain" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Spagettitäytön tulostus vaiheittain vai kaiken täyttötulostuslangan pursotus tulostuksen lopussa." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Säätää spagettitäytön tiheyttä. Huomaa, että täyttötiheys hall #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Spagettitäytön ylimääräinen ainemäärä" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Korjausehto pursotettavan aineen kokonaismäärän säätöön jokaisen spagettitäytön aikana." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Puolella nopeudella pursotetun nousuliikkeen etäisyys.\n" -"Se voi parantaa tarttuvuutta edellisiin kerroksiin kuumentamatta materiaalia liikaa kyseisissä kerroksissa. Koskee vain rautalankamallin tulostusta." +msgstr "Puolella nopeudella pursotetun nousuliikkeen etäisyys.\nSe voi parantaa tarttuvuutta edellisiin kerroksiin kuumentamatta materiaalia liikaa kyseisissä kerroksissa. Koskee vain rautalankamallin tulostusta." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Suuttimen ja vaakasuoraan laskevien linjojen välinen etäisyys. Suuremp #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Ota silitys käyttöön" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Yläpinnan läpikäynti yhden ylimääräisen kerran ilman materiaalin pursotusta. Tämän tarkoitus on sulattaa yläosan muovia enemmän, jolloin saadaan sileämpi pinta." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Silitä vain korkein kerros" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Suorita silitys vain verkon viimeisessä kerroksessa. Tämä säästää aikaa, jos alemmat kerrokset eivät edellytä sileää pintaviimeistelyä." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Silityskuvio" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Yläpintojen silitykseen käytettävä kuvio." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Samankeskinen" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Siksak" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Silityksen linjajako" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Silityslinjojen välinen etäisyys." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Silitysvirtaus" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Silityksen aikana pursotettavan materiaalin määrä suhteessa normaaliin pintakalvon linjaan. Suuttimen pitäminen täytettynä auttaa joidenkin yläpinnan halkeamien täyttämisessä, mutta liiallinen määrä johtaa ylipursotukseen ja täpliin pinnan sivulla." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Silitysliitos" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Etäisyys mallin reunoihin. Silitys verkon reunoihin saakka voi johtaa rosoiseen reunaan tulosteessa." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Silitysnopeus" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Yläpinnan ylikulkuun käytettävä nopeus." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Silityksen kiihtyvyys" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "Kiihtyvyys, jolla silitys suoritetaan." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Silityksen nykäisy" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Silityksen aikainen nopeuden hetkellinen maksimimuutos." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Mallissa käytettävä muunnosmatriisi, kun malli ladataan tiedostosta." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Seinämien suulake" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Seinämien tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Tulostettava täyttömateriaalin kuvio. Linja- ja siksak-täytöt vaihtavat suuntaa kerrosten välillä, mikä vähentää materiaalikustannuksia. Ristikko-, kolmio-, kuutio-, nelitaho- ja samankeskinen-kuviot tulostetaan kokonaisuudessaan kuhunkin kerrokseen. Kuutio- ja nelitaho-täytöt muuttuvat kerroksittain, jotta vahvuus jakautuu tasaisemmin kussakin suunnassa." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Nelitaho" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Laajenna pintakalvot täyttöalueelle" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Laajenna tasaisten pintojen ylä- ja/tai alapuolen pintakalvot. Oletuksena pintakalvot päättyvät täyttöalueen ympäröivien seinämälinjojen alla, mutta tämä voi aiheuttaa reikiä, kun täyttöalueen tiheys on alhainen. Tämä asetus laajentaa pintakalvot seinämälinjoja pidemmälle niin, että seuraavan kerroksen täyttöalue lepää pintakalvon päällä." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Ylimpien pintakalvojen laajennus täyttöalueelle" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Laajenna ylimmät pintakalvot (alueet, joiden yläpuolella on ilmaa) niin, että ne tukevat yläpuolista täyttöaluetta." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Alimpien pintakalvojen laajennus täyttöalueelle" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Laajenna alimmat pintakalvot (alueet, joiden alapuolella on ilmaa) niin, että ylä- ja alapuoliset täyttökerrokset ankkuroivat ne." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Pintakalvojen laajennusetäisyys täyttöalueelle. Oletusetäisyys riittää kuromaan umpeen täyttölinjojen väliset raot, ja se estää reikien ilmestymisen pintakalvoon seinämän liitoskohdassa, kun täytön tiheys on alhainen." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Ohita jotkin siksakien yhdistämiset" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Ohita jotkin siksakien yhdistämiset, jotta tukirakenne on helpompi rikkoa." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Siksakien yhdistämisten ohitusten määrä" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Ohita yksi jokaisesta N-yhdistämislinjasta, jotta tukirakenne on helpompi rikkoa." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Näytä laitteen variantit" @@ -4901,4 +5116,4 @@ msgstr "Mallissa käytettävä muunnosmatriisi, kun malli ladataan tiedostosta." #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Kaksoispursotuksen limitys" +#~ msgstr "Kaksoispursotuksen limitys" \ No newline at end of file diff --git a/resources/i18n/fr/cura.po b/resources/i18n/fr_FR/cura.po similarity index 72% rename from resources/i18n/fr/cura.po rename to resources/i18n/fr_FR/cura.po index 4d7ceb86e5..76ad2ae4a6 100644 --- a/resources/i18n/fr/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: French\n" -"Language: French\n" +"Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fr\n" -"Country-Code: FR\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Abandon de l'impression" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Bloqué" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Action requise" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Ne peux pas imprimer" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "L'imprimante n'est pas configurée pour héberger un groupe d'imprimantes Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Complète a: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "L'imprimante est le patron pour un groupe de %1 imprimantes Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} a terminé d'imprimer '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impression terminée" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plug-ins" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Parcourir les plug-ins..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Plug-ins installés..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Paramètres de la machine" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Rayon-X" +msgid "X-Ray view" +msgstr "Visualisation par rayons X" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "Fichier GCode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Accepte les G-Code et les envoie par Wi-Fi à une Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Impression avec Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimer avec Doodle3D WiFi-Box" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimer avec Doodle3D WiFi-Box" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Connexion avec Doodle3D Connecter..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Annuler" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Envoi de données vers Doodle3D Connecter..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Impossible d'envoyer les données à Doodle3D Connect. Une autre tâche est-elle toujours active ?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Enregistrement de données dans Doodle3D Connecter..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Fichier envoyé vers Doodle3D Connecter" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Ouvrir Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Imprimer avec" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Activer les périphériques de numérisation..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Ouvrir l'interface web Doodle3D Connecter" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Impossible de démarrer une nouvelle tâche car l'imprimante est occupée ou n'est pas connectée." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Les détails d'impression" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "L'imprimante ne prend pas en charge l'impression par USB car elle utilise UltiGCode parfum." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "Impression par USB" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Impossible de démarrer une nouvelle tâche car l'imprimante ne prend pas en charge l'impression par USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Avertissement" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Impossible de trouver le firmware requis pour l'imprimante sur %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "Fichier X3G" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Firmware de l'imprimante" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Enregistrer sur un lecteur amovible {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" -msgstr "Enregistrement sur le lecteur amovible {0}" +msgstr "Enregistrement sur le lecteur amovible {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Enregistrement..." #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" -msgstr "Impossible d'enregistrer {0} : {1}" +msgstr "Impossible d'enregistrer {0} : {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Enregistré sur le lecteur amovible {0} sous {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Impossible de trouver un nom de fichier lors d'une tentative d'écriture sur {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Ejecter" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Ejecter le lecteur amovible {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Impossible d'enregistrer sur le lecteur {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Erreur" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Enregistré sur le lecteur amovible {0} sous {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Fichier enregistré" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Ejecter" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Ejecter le lecteur amovible {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Lecteur {0} éjecté. Vous pouvez maintenant le retirer en tout sécurité." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Retirez le lecteur en toute sécurité" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Lecteur amovible" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Imprimer sur le réseau" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Imprimer sur le réseau" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Accès à l'imprimante demandé. Veuillez approuver la demande sur l'imprimante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Statut de la connexion" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Statut de la connexion" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Réessayer" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Renvoyer la demande d'accès" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Accès à l'imprimante accepté" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Aucun accès pour imprimer avec cette imprimante. Impossible d'envoyer la tâche d'impression." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Demande d'accès" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Envoyer la demande d'accès à l'imprimante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Connecté sur le réseau. Veuillez approuver la demande d'accès sur l'imprimante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Connecté sur le réseau." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Connecté sur le réseau. Pas d'accès pour commander l'imprimante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "La demande d'accès a été refusée sur l'imprimante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Échec de la demande d'accès à cause de la durée limite." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "La connexion avec le réseau a été perdue." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "La connexion avec l'imprimante a été perdue. Vérifiez que votre imprimante est connectée." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Impossible de démarrer une nouvelle tâche d'impression car l'imprimante est occupée. L'état actuel de l'imprimante est %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Statut de l'imprimante" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Impossible de démarrer une nouvelle tâche d'impression. Pas de PrintCore inséré dans la fente {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Impossible de démarrer une nouvelle tâche d'impression car l'imprimante est occupée. Pas de matériau chargé dans la fente {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Pas suffisamment de matériau pour bobine {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "PrintCore différent (Cura : {0}, Imprimante : {1}) sélectionné pour l'extrudeuse {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Matériau différent (Cura : {0}, Imprimante : {1}) sélectionné pour l'extrudeuse {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "Le PrintCore {0} n'est pas correctement calibré. Le calibrage XY doit être effectué sur l'imprimante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Êtes-vous sûr(e) de vouloir imprimer avec la configuration sélectionnée ?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Problème de compatibilité entre la configuration ou l'étalonnage de l'imprimante et Cura. Pour un résultat optimal, découpez toujours pour les PrintCores et matériaux insérés dans votre imprimante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Configuration différente" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Envoi des données à l'imprimante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Annuler" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Envoi des données..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Impossible d'envoyer les données à l'imprimante. Une autre tâche est-elle toujours active ?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Abandon de l'impression..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Abandon de l'impression. Vérifiez l'imprimante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Mise en pause de l'impression..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Reprise de l'impression..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Synchroniser avec votre imprimante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Voulez-vous utiliser votre configuration d'imprimante actuelle dans Cura ?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Les PrintCores et / ou matériaux sur votre imprimante diffèrent de ceux de votre projet actuel. Pour un résultat optimal, découpez toujours pour les PrintCores et matériaux insérés dans votre imprimante." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Connecter via le réseau" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "L'imprimante n'est pas configurée pour héberger un groupe d'imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "L'imprimante n'est pas configurée pour héberger un groupe de {count} imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} a terminé d'imprimer '{job_name}'. Veuillez enlever l'impression et confirmer avoir débarrassé le plateau." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} est réservé pour imprimer '{job_name}'. Veuillez modifier la configuration de l'imprimante pour qu'elle corresponde à la tâche et commence l'impression." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Envoi de nouvelles tâches (temporairement) bloqué, envoi de la tâche d'impression précédente en cours." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Impossible d'envoyer une nouvelle tâche d'impression : cette imprimante 3D n'est pas (encore) configurée pour héberger un groupe d'imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Envoi de {file_name} vers le groupe {cluster_name}..." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "{file_name} envoyé vers le groupe {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Afficher les tâches d'impression" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Ouvre l'interface d'impression des tâches dans votre navigateur." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Impossible d'envoyer la tâche d'impression vers le groupe {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Pour s'assurer que votre {machine_name} est pourvue des dernières fonctionnalités, il est recommandé de mettre régulièrement à jour le firmware. Cela peut se faire sur la {machine_name} (lorsque connectée au réseau) ou via USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Nouveau firmware %s disponible" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Télécharger" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Impossible d'accéder aux informations de mise à jour." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Des erreurs sont apparues lors de l'ouverture de votre fichier SolidWorks ! Veuillez vérifier s'il est possible d'ouvrir votre fichier dans SolidWorks sans que cela ne cause de problèmes." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "Fichier de composant SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "Fichier d'assemblage SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Configurer" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Erreur lors du lancement de %s !" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "Modifier le G-Code" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura collecte des statistiques anonymes sur le découpage. Vous pouvez désactiver cette fonctionnalité dans les préférences." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Collecte des données..." + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Ignorer" @@ -472,14 +743,19 @@ msgstr "Fichier GCode" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Couches" +msgid "Layer view" +msgstr "Vue en couches" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura n'affiche pas les couches avec précision lorsque l'impression filaire est activée" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Vue en couches" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "Image GIF" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Le matériau sélectionné est incompatible avec la machine ou la configuration sélectionnée." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Impossible de découper le matériau actuel, car celui-ci est incompatible avec la machine ou la configuration sélectionnée." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Impossible de découper" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Impossible de couper avec les paramètres actuels. Les paramètres suivants contiennent des erreurs : {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Impossible de couper car la tour primaire ou la (les) position(s) d'amorçage ne sont pas valides." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Rien à couper car aucun des modèles ne convient au volume d'impression. Mettez à l'échelle ou faites pivoter les modèles pour les faire correspondre." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Traitement des couches" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informations" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Configurer les paramètres par modèle" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Recommandé" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Personnalisé" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "Fichier 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Buse" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Parcourir les plug-ins" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Échec de l'obtention de l'identifiant du plug-in au départ de {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Avertissement" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Navigateur de plug-ins" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solide" +msgid "Solid view" +msgstr "Vue solide" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Analyse du G-Code" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Détails G-Code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Assurez-vous que le g-code est adapté à votre imprimante et à la configuration de l'imprimante avant d'y envoyer le fichier. La représentation du g-code peut ne pas être exacte." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Projet Cura fichier 3MF" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Sélectionner les mises à niveau" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Nivellement du plateau" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Paroi externe" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Parois internes" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Couche extérieure" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Remplissage" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Remplissage du support" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Interface du support" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Support" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Jupe" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Déplacement" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Rétractions" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Autre" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Fichier {0} prédécoupé" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Pas de matériau chargé" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Matériau inconnu" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Recherche d'un nouvel emplacement pour les objets" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Recherche d'emplacement..." + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Impossible de trouver un emplacement dans le volume d'impression pour tous les objets" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Impossible de trouver un emplacement" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Le fichier existe déjà" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "Le fichier {0} existe déjà. Êtes vous sûr de vouloir le remplacer ?" +msgstr "Le fichier {0} existe déjà. Êtes-vous sûr de vouloir le remplacer ?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Personnalisé" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Matériau personnalisé" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Le matériau sélectionné est incompatible avec la machine ou la configuration sélectionnée." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Matériau incompatible" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Le diamètre du matériau sélectionné rend le matériau incompatible avec l'imprimante actuelle." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Annuler" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Annuler la modification du diamètre du matériau." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" -msgstr "Échec de l'exportation du profil vers {0} : {1}" +msgstr "Échec de l'exportation du profil vers {0} : {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Échec de l'exportation du profil vers {0} : Le plug-in du générateur a rapporté une erreur." +msgstr "Échec de l'exportation du profil vers {0} : le plug-in du générateur a rapporté une erreur." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Profil exporté vers {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Échec de l'importation du profil depuis le fichier {0} : {1}" +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Exporter les détails" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to import profile from {0}: {1}" +msgstr "Échec de l'importation du profil depuis le fichier {0} : {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Importation du profil {0} réussie" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Le profil {0} est un type de fichier inconnu ou est corrompu." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Personnaliser le profil" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Il manque un type de qualité au profil." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Impossible de trouver un type de qualité {0} pour la configuration actuelle." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "La hauteur du volume d'impression a été réduite en raison de la valeur du paramètre « Séquence d'impression » afin d'éviter que le portique ne heurte les modèles imprimés." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Volume d'impression" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Multiplication et placement d'objets" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Placement de l'objet..." + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Une erreur fatale que nous ne pouvons résoudre s'est produite !

\n" -"

Veuillez utiliser les informations ci-dessous pour envoyer un rapport d'erreur à http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Une erreur fatale que nous ne pouvons résoudre s'est produite !

\n

Veuillez utiliser les informations ci-dessous pour envoyer un rapport d'erreur à http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Ouvrir la page Web" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Chargement des machines..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Préparation de la scène..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Chargement de l'interface..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Un seul fichier G-Code peut être chargé à la fois. Importation de {0} sautée" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (Largeur)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (Hauteur)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Forme du plateau" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Origine au centre" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Plateau chauffant" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "GCode Parfum" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distance entre la gauche de la tête d'impression et le centre de la buse. Permet d'empêcher les collisions entre les impressions précédentes et la tête d'impression lors d'une impression « Un à la fois »." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distance entre le devant de la tête d'impression et le centre de la buse. Permet d'empêcher les collisions entre les impressions précédentes et la tête d'impression lors d'une impression « Un à la fois »." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distance entre la droite de la tête d'impression et le centre de la buse. Permet d'empêcher les collisions entre les impressions précédentes et la tête d'impression lors d'une impression « Un à la fois »." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distance entre le dos de la tête d'impression et le centre de la buse. Permet d'empêcher les collisions entre les impressions précédentes et la tête d'impression lors d'une impression « Un à la fois »." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Hauteur du portique" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "La différence de hauteur entre la pointe de la buse et le système de portique (axes X et Y). Permet d'empêcher les collisions entre les impressions précédentes et le portique lors d'une impression « Un à la fois »." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Nombre d'extrudeuses" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Le diamètre nominal de filament pris en charge par l'imprimante. Le diamètre exact sera remplacé par le matériau et / ou le profil." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Diamètre du matériau" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Taille de la buse" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Début Gcode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Commandes Gcode à exécuter au tout début." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Fin Gcode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Commandes Gcode à exécuter tout à la fin." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Paramètres de la buse" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Décalage buse X" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Décalage buse Y" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Extrudeuse Gcode de démarrage" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Extrudeuse Gcode de fin" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Paramètres Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Enregistrer" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Imprimer sur : %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Température de l'extrudeuse : %1/%2 °C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Température du plateau : %1/%2 °C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Imprimer" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Récapitulatif des changements" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Code erreur inconnue : %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Connecter à l'imprimante en réseau" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Pour imprimer directement sur votre imprimante sur le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble réseau ou en connectant votre imprimante à votre réseau Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers g-code sur votre imprimante.\n" -"\n" -"Sélectionnez votre imprimante dans la liste ci-dessous :" +msgstr "Pour imprimer directement sur votre imprimante sur le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble réseau ou en connectant votre imprimante à votre réseau Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers g-code sur votre imprimante.\n\nSélectionnez votre imprimante dans la liste ci-dessous :" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Ajouter" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Modifier" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Supprimer" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Rafraîchir" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Si votre imprimante n'apparaît pas dans la liste, lisez le guide de dépannage de l'impression en réseau" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Type" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Inconnu" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Version du firmware" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Adresse" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "L'imprimante à cette adresse n'a pas encore répondu." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Connecter" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Adresse de l'imprimante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Saisissez l'adresse IP ou le nom d'hôte de votre imprimante sur le réseau." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Connecter à une imprimante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Charger la configuration de l'imprimante dans Cura" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Activer la configuration" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Cette imprimante n'est pas configurée pour héberger un groupe d'imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "L'imprimante est configurée pour héberger un groupe de %1 imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Imprimer sur le réseau" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Imprimer" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 n'est pas configurée pour héberger un groupe d'imprimantes connectées Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Impression..." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Réservée" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Terminé" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Préparation..." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Disponible" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Finalisé sur : " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Enlever les objets du plateau" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Préparation de l'impression..." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Non acceptation des tâches d'impression" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Ouvre la page des tâches d'impression avec votre navigateur web." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Afficher les tâches d'impression" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "GROUPE D'IMPRIMANTES" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Imprimer les tâches" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Impression..." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Mis en file d'attente" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "En attente de modification de configuration" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Imprimantes" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Afficher les imprimantes" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Configuration du plug-in Cura SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Qualité par défaut du STL exporté :" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Toujours demander" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Toujours utiliser la qualité Fine" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Toujours utiliser la qualité grossière" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Importer le fichier SolidWorks comme STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Qualité du STL exporté" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Qualité" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Grossière" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Fine" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Modifier les scripts de post-traitement actifs" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Mode d’affichage : couches" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Modèle de couleurs" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Couleur du matériau" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Type de ligne" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Mode de compatibilité" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Afficher les déplacements" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Afficher les aides" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Afficher la coque" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Afficher le remplissage" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Afficher uniquement les couches supérieures" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Afficher 5 niveaux détaillés en haut" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Haut / bas" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Paroi interne" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Lissage" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Sélectionner les paramètres" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Sélectionner les paramètres pour personnaliser ce modèle" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtrer..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Afficher tout" @@ -1613,27 +2083,45 @@ msgstr "Ouvrir" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Rechercher et mettre à jour les plug-ins" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Vous pouvez trouver ici une liste de plug-ins de sources tierces." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Mettre à niveau" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Installé" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Plug-in d'accord de licence" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " le plug-in contient une licence.\nVous devez approuver cette licence pour installer ce plug-in.\nAcceptez-vous les clauses ci-dessous ?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Accepter" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Refuser" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Tout est en ordre ! Vous avez terminé votre check-up." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Non connecté à une imprimante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "L'imprimante n'accepte pas les commandes" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "En maintenance. Vérifiez l'imprimante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Connexion avec l'imprimante perdue" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Impression..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "En pause" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Préparation..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Supprimez l'imprimante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Reprendre" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pause" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Abandonner l'impression" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Abandonner l'impression" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Êtes-vous sûr(e) de vouloir abandonner l'impression ?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Vous avez personnalisé certains paramètres du profil.\n" -"Souhaitez-vous conserver ces changements, ou les annuler ?" +msgstr "Vous avez personnalisé certains paramètres du profil.\nSouhaitez-vous conserver ces changements, ou les annuler ?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Personnalisé" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Toujours me demander" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Annuler et ne plus me demander" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Conserver et ne plus me demander" @@ -2038,7 +2524,7 @@ msgstr "Vérifier tout" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Calculer" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Unité" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Général" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Langue :" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Devise :" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Thème :" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Vous devez redémarrer l'application pour que ces changements prennent effet." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Découper automatiquement si les paramètres sont modifiés." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Découper automatiquement" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Comportement Viewport" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Surligne les parties non supportées du modèle en rouge. Sans ajouter de support, ces zones ne s'imprimeront pas correctement." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Mettre en surbrillance les porte-à-faux" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Déplace la caméra afin que le modèle sélectionné se trouve au centre de la vue." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Centrer la caméra lorsqu'un élément est sélectionné" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Le comportement de zoom par défaut de Cura doit-il être inversé ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Inverser la direction du zoom de la caméra." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Le zoom doit-il se faire dans la direction de la souris ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Zoomer vers la direction de la souris" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Les modèles dans la zone d'impression doivent-ils être déplacés afin de ne plus se croiser ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Veillez à ce que les modèles restent séparés" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Les modèles dans la zone d'impression doivent-ils être abaissés afin de toucher le plateau ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Abaisser automatiquement les modèles sur le plateau" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Afficher le message d'avertissement dans le lecteur gcode." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Message d'avertissement dans lecteur gcode." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "La couche doit-elle être forcée en mode de compatibilité ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Forcer l'affichage de la couche en mode de compatibilité (redémarrage requis)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Ouvrir et enregistrer des fichiers" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Les modèles doivent-ils être mis à l'échelle du volume d'impression s'ils sont trop grands ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Réduire la taille des modèles trop grands" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Un modèle peut apparaître en tout petit si son unité est par exemple en mètres plutôt qu'en millimètres. Ces modèles doivent-ils être agrandis ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Mettre à l'échelle les modèles extrêmement petits" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Un préfixe basé sur le nom de l'imprimante doit-il être automatiquement ajouté au nom de la tâche d'impression ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Ajouter le préfixe de la machine au nom de la tâche" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Un résumé doit-il être affiché lors de l'enregistrement d'un fichier de projet ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Afficher la boîte de dialogue du résumé lors de l'enregistrement du projet" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Comportement par défaut lors de l'ouverture d'un fichier de projet" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Comportement par défaut lors de l'ouverture d'un fichier de projet : " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Toujours demander" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Toujours ouvrir comme projet" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Toujours importer les modèles" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Lorsque vous apportez des modifications à un profil puis passez à un autre profil, une boîte de dialogue apparaît, vous demandant si vous souhaitez conserver les modifications. Vous pouvez aussi choisir une option par défaut, et le dialogue ne s'affichera plus." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Écraser le profil" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Confidentialité" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Cura doit-il vérifier les mises à jour au démarrage du programme ?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Vérifier les mises à jour au démarrage" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Les données anonymes de votre impression doivent-elles être envoyées à Ultimaker ? Notez qu'aucun modèle, aucune adresse IP ni aucune autre information permettant de vous identifier personnellement ne seront envoyés ou stockés." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Envoyer des informations (anonymes) sur l'impression" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Imprimantes" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "En attente d'une tâche d'impression" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profils" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Exporter un profil" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Matériaux" @@ -2472,14 +2958,14 @@ msgid "Import Material" msgstr "Importer un matériau" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr "Impossible d'importer le matériau %1 : %2" +msgstr "Impossible d'importer le matériau %1 : %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "Matériau %1 importé avec succès" +msgstr "Matériau %1 importé avec succès" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Exporter un matériau" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" -msgstr "Échec de l'export de matériau vers %1 : %2" +msgstr "Échec de l'exportation de matériau vers %1 : %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" -msgstr "Matériau exporté avec succès vers %1" +msgstr "Matériau exporté avec succès vers %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Ajouter une imprimante" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Ajouter une imprimante" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Paroi externe" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Parois internes" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Couche extérieure" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Remplissage" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Remplissage du support" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Interface du support" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Support" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Déplacement" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Rétractions" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Autre" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00 h 00 min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker. \n" -"Cura est fier d'utiliser les projets open source suivants :" +msgstr "Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\nCura est fier d'utiliser les projets open source suivants :" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Format d'échange de données" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Prise en charge de la bibliothèque pour le calcul scientifique" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "Icônes SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profil :" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n\nCliquez pour ouvrir le gestionnaire de profils." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Rechercher..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Copier la valeur vers tous les extrudeurs" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Masquer ce paramètre" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Masquer ce paramètre" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Afficher ce paramètre" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Configurer la visibilité des paramètres..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n" -"\n" -"Cliquez pour rendre ces paramètres visibles." +msgstr "Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n\nCliquez pour rendre ces paramètres visibles." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Ce paramètre possède une valeur qui est différente du profil.\n" -"\n" -"Cliquez pour restaurer la valeur du profil." +msgstr "Ce paramètre possède une valeur qui est différente du profil.\n\nCliquez pour restaurer la valeur du profil." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n" -"\n" -"Cliquez pour restaurer la valeur calculée." +msgstr "Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n\nCliquez pour restaurer la valeur calculée." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Configuration de l'impression" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Configuration de l'impression désactivée\n" -"Les fichiers G-Code ne peuvent pas être modifiés" +msgstr "Configuration de l'impression désactivée\nLes fichiers G-Code ne peuvent pas être modifiés" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00 h 00 min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Information horaire" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Imprimer l'heure" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Configuration de l'impression recommandée

Imprimer avec les paramètres recommandés pour l'imprimante, le matériau et la qualité sélectionnés." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Configuration de l'impression personnalisée

Imprimer avec un contrôle fin de chaque élément du processus de découpe." @@ -2807,7 +3253,7 @@ msgstr "&Visualisation" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automatique : %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Aucune imprimante n'est connectée" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Extrémité chaude" +msgid "Extruder" +msgstr "Extrudeuse" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Température cible de l'extrémité chauffante. L'extrémité chauffante sera chauffée ou refroidie pour tendre vers cette température. Si la valeur est 0, le chauffage de l'extrémité chauffante sera coupé." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Température actuelle de cet extrudeur." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Couleur du matériau dans cet extrudeur." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Matériau dans cet extrudeur." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Buse insérée dans cet extrudeur." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Plateau" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Température cible du plateau chauffant. Le plateau sera chauffé ou refroidi pour tendre vers cette température. Si la valeur est 0, le chauffage du plateau sera éteint." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Température actuelle du plateau chauffant." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Température jusqu'à laquelle préchauffer le plateau." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Annuler" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Préchauffer" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Préchauffez le plateau avant l'impression. Vous pouvez continuer à ajuster votre impression pendant qu'il chauffe, et vous n'aurez pas à attendre que le plateau chauffe lorsque vous serez prêt à lancer l'impression." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Activer l'impression" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Nom de la tâche" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Durée d'impression" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Durée restante estimée" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Configurer la visibilité des paramètres..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Veuillez charger un modèle 3D" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Prêt à découper" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Découpe en cours..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Prêt à %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Impossible de découper" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Découpe indisponible" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Préparer" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Annuler" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Sélectionner le périphérique de sortie actif" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Ouvrir le(s) fichier(s)" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Aide" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Ouvrir un fichier" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Mode d’affichage" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Paramètres" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Nouveau projet" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Êtes-vous sûr(e) de souhaiter lancer un nouveau projet ? Cela supprimera les objets du plateau ainsi que tous paramètres non enregistrés." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Installer plug-in" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Ouvrir le(s) fichier(s)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Nous avons trouvé au moins un fichier G-Code parmi les fichiers que vous avez sélectionné. Vous ne pouvez ouvrir qu'un seul fichier G-Code à la fois. Si vous souhaitez ouvrir un fichier G-Code, veuillez ne sélectionner qu'un seul fichier de ce type." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Ne pas afficher à nouveau le résumé du projet lors de l'enregistrement" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Enregistrer" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Préparer" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Surveiller" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Hauteur de la couche" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Vitesse d’impression" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Ralentir" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Accélérer" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Remplissage" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Un remplissage vide laissera votre modèle creux pour une solidité faible." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Un remplissage clairsemé (20 %) donnera à votre modèle une solidité moyenne." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Un remplissage dense (50 %) donnera à votre modèle une solidité supérieure à la moyenne." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100 %" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Un remplissage solide (100 %) rendra votre modèle vraiment résistant." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Graduel" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Un remplissage graduel augmentera la quantité de remplissage vers le haut." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Permettre le remplissage graduel" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Générer les supports" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Générer des structures pour soutenir les parties du modèle qui possèdent des porte-à-faux. Sans ces structures, ces parties s'effondreront durant l'impression." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Extrudeuse de soutien" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Sélectionnez l'extrudeur à utiliser comme support. Cela créera des structures de support sous le modèle afin de l'empêcher de s'affaisser ou de s'imprimer dans les airs." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Adhérence au plateau" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Activez l'impression d'une bordure ou plaquette (Brim/Raft). Cela ajoutera une zone plate autour de ou sous votre objet qui est facile à découper par la suite." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Besoin d'aide pour améliorer vos impressions ?
Lisez les Guides de dépannage Ultimaker" @@ -3406,8 +3838,8 @@ msgstr "Besoin d'aide pour améliorer vos impressions ?
Lisez les Check material compatibility" +msgstr "Vérifier la compatibilité du matériau" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Cliquez ici pour vérifier la compatibilité des matériaux sur Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profil :" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n" -"\n" -"Cliquez pour ouvrir le gestionnaire de profils." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Permet de modifier les paramètres de la machine (tels que volume d'impression, taille de buse, etc.)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Action Paramètres de la machine" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Permet la vue Rayon-X." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Vue Rayon-X" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Fournit la prise en charge de la lecture de fichiers X3D." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "Lecteur X3D" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Enregistre le GCode dans un fichier." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "Générateur de GCode" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Exporter les contenus de tous les paramètres vers un fichier HTML." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Mode God" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Accepte les G-Code et les envoie par Wi-Fi à une box WiFi Doodle3D." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Box WiFi Doodle3D" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Affiche les changements depuis la dernière version." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Récapitulatif des changements" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Créer un profil de changements de qualité aplati." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Aplatisseur de profil" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Accepte les G-Code et les envoie à une imprimante. Ce plugin peut aussi mettre à jour le firmware." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "Impression par USB" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Permet le branchement hot-plug et l'écriture sur lecteur amovible." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Plugin de périphérique de sortie sur disque amovible" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Gère les connexions réseau vers les imprimantes Ultimaker 3" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "Connexion au réseau UM3" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Connexion au réseau UM3 (Cluster)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Vérifie les mises à jour du firmware." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Vérificateur des mises à jour du firmware" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Donne la possibilité d'ouvrir certains fichiers via SolidWorks. Ces fichiers sont ensuite convertis et chargés dans Cura." #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "Intégration SolidWorks" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Extension qui permet le post-traitement des scripts créés par l'utilisateur" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Post-traitement" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Enregistre automatiquement les Préférences, Machines et Profils après des modifications." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Enregistrement auto" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Envoie des informations anonymes sur le découpage. Peut être désactivé dans les préférences." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Information sur le découpage" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Offre la possibilité de lire et d'écrire des profils matériels basés sur XML." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Profils matériels" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Fournit la prise en charge de l'importation de profils à partir de versions Cura antérieures." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Lecteur de profil Cura antérieur" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Fournit la prise en charge de l'importation de profils à partir de fichiers g-code." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "Lecteur de profil GCode" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Permet la vue en couches." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Vue en couches" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Configurations des mises à niveau de Cura 2.5 vers Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Mise à niveau de 2.5 vers 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Met à niveau les configurations, de Cura 2.7 vers Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Mise à niveau de version, de 2.7 vers 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Configurations des mises à niveau de Cura 2.6 vers Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Mise à niveau de 2.6 vers 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Configurations des mises à niveau de Cura 2.1 vers Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Mise à niveau vers 2.1 vers 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Configurations des mises à niveau de Cura 2.2 vers Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Mise à niveau de 2.2 vers 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Permet de générer une géométrie imprimable à partir de fichiers d'image 2D." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Lecteur d'images" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Fournit le lien vers l'arrière du système de découpage CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "Système CuraEngine" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Fournit les paramètres par modèle." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Outil de paramètres par modèle" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Fournit la prise en charge de la lecture de fichiers 3MF." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "Lecteur 3MF" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Rechercher, gérer et installer de nouveaux plug-ins." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Navigateur de plug-ins" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Affiche une vue en maille solide normale." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Vue solide" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Permet le chargement et l'affichage de fichiers G-Code." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "Lecteur G-Code" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Fournit la prise en charge de l'exportation de profils Cura." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Générateur de profil Cura" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Permet l'écriture de fichiers 3MF" #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "Générateur 3MF" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Fournit les actions de la machine pour les machines Ultimaker (telles que l'assistant de calibration du plateau, sélection des mises à niveau, etc.)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Actions de la machine Ultimaker" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Fournit la prise en charge de l'importation de profils Cura." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Lecteur de profil Cura" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Rayon-X" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Accepte les G-Code et les envoie par Wi-Fi à une Doodle3D WiFi-Box." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Impression avec Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Imprimer avec Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Imprimer avec" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Activer les périphériques de numérisation..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "Fichier X3G" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Enregistrement sur le lecteur amovible {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Impossible d'enregistrer {0} : {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Gardez à l'esprit que vous devez rouvrir votre fichier SolidWorks manuellement ! Le fait de recharger le modèle ne marchera pas." + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Couches" + +#~ msgid "Browse plugins" +#~ msgstr "Parcourir les plug-ins" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Solide" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Le fichier {0} existe déjà. Êtes vous sûr de vouloir le remplacer ?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Échec de l'exportation du profil vers {0} : {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Échec de l'exportation du profil vers {0} : Le plug-in du générateur a rapporté une erreur." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Profil exporté vers {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Échec de l'importation du profil depuis le fichier {0} : {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Paramètres Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Imprimer sur : %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Température de l'extrudeuse : %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Température du plateau : %1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Mode d’affichage : couches" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Impossible d'importer le matériau %1 : %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Matériau %1 importé avec succès" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Échec de l'export de matériau vers %1 : %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Matériau exporté avec succès vers %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Extrémité chaude" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Mode d’affichage" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Imprimer" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0 %" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Un remplissage vide laissera votre modèle creux pour une solidité faible." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20 %" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Un remplissage clairsemé (20 %) donnera à votre modèle une solidité moyenne." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50 %" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Un remplissage dense (50 %) donnera à votre modèle une solidité supérieure à la moyenne." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100 %" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Un remplissage solide (100 %) rendra votre modèle vraiment résistant." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Graduel" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Permet l'écriture de fichiers X3G" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "Générateur X3G" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/fr/fdmextruder.def.json.po b/resources/i18n/fr_FR/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/fr/fdmextruder.def.json.po rename to resources/i18n/fr_FR/fdmextruder.def.json.po index 2ed28d85bf..70279e97d9 100644 --- a/resources/i18n/fr/fdmextruder.def.json.po +++ b/resources/i18n/fr_FR/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:31+0200\n" "Last-Translator: Bothof \n" "Language-Team: French\n" -"Language: French\n" +"Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fr\n" -"Country-Code: FR\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "Le train d'extrudeuse utilisé pour l'impression. Cela est utilisé en m #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID buse" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "ID buse pour un train d'extrudeuse, comme « AA 0.4 » et « BB 0.8 »." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/fr/fdmprinter.def.json.po b/resources/i18n/fr_FR/fdmprinter.def.json.po similarity index 88% rename from resources/i18n/fr/fdmprinter.def.json.po rename to resources/i18n/fr_FR/fdmprinter.def.json.po index c896e5e56e..0a4a135b99 100644 --- a/resources/i18n/fr/fdmprinter.def.json.po +++ b/resources/i18n/fr_FR/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: French\n" -"Language: French\n" +"Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: fr\n" -"Country-Code: FR\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "Le nom du modèle de votre imprimante 3D." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Afficher les variantes de la machine" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"Commandes Gcode à exécuter au tout début, séparées par \n" -"." +msgstr "Commandes Gcode à exécuter au tout début, séparées par \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"Commandes Gcode à exécuter à la toute fin, séparées par \n" -"." +msgstr "Commandes Gcode à exécuter à la toute fin, séparées par \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "GUID du matériau. Cela est configuré automatiquement. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Attendre le chauffage du plateau" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Insérer ou non une commande pour attendre que la température du platea #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Attendre le chauffage de la buse" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Attendre ou non que la température de la buse soit atteinte au démarra #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Inclure les températures du matériau" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Inclure ou non les commandes de température de la buse au début du gco #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Inclure la température du plateau" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Inclure ou non les commandes de température du plateau au début du gco #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Largeur de la machine" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "La largeur (sens X) de la zone imprimable." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Profondeur de la machine" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "La profondeur (sens Y) de la zone imprimable." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Forme du plateau" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Elliptique" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Hauteur de la machine" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "La hauteur (sens Z) de la zone imprimable." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "A un plateau chauffé" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Si la machine a un plateau chauffé présent." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Est l'origine du centre" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Le type de gcode à générer." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumétrique)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "La différence de hauteur entre la pointe de la buse et le système de p #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID buse" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "ID buse pour un train d'extrudeuse, comme « AA 0.4 » et « BB 0.8 »." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "Largeur d'une seule ligne de la paroi pour toutes les lignes de paroi, #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Largeur de ligne de couche extérieure de la surface supérieure" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Largeur d'une seule ligne de la zone en haut de l'impression." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Largeur d'une seule ligne de tour primaire." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Largeur de ligne couche initiale" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Multiplicateur de la largeur de la ligne sur la première couche. Augmenter le multiplicateur peut améliorer l'adhésion au plateau." #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Coque" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Extrudeuse de paroi externe" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Le train d'extrudeuse utilisé pour l'impression des parois externes. Cela est utilisé en multi-extrusion." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Extrudeuse de parois internes" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "Le train d'extrudeuse utilisé pour l'impression des parois internes. Cela est utilisé en multi-extrusion." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Épaisseur de la paroi" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Épaisseur des parois en sens horizontal. Cette valeur divisée par la largeur de la ligne de la paroi définit le nombre de parois." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Distance d'un déplacement inséré après la paroi extérieure, pour mi #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Extrudeuse de couche extérieure de la surface supérieure" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "Le train d'extrudeuse utilisé pour l'impression de la couche extérieure supérieure. Cela est utilisé en multi-extrusion." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Couches extérieures de la surface supérieure" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Nombre de couches extérieures supérieures. En général, une seule couche supérieure est suffisante pour générer des surfaces supérieures de qualité." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Motif de couche extérieure de surface supérieure" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Le motif des couches supérieures." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Lignes" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrique" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zig Zag" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Sens de lignes de couche extérieure de surface supérieure" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Une liste de sens de ligne (exprimés en nombres entiers) à utiliser lorsque les couches extérieures de la surface supérieure utilisent le motif en lignes ou en zig zag. Les éléments de la liste sont utilisés de manière séquentielle à mesure de l'avancement des couches. La liste reprend depuis le début lorsque la fin est atteinte. Les éléments de la liste sont séparés par des virgules et la liste entière est encadrée entre crochets. La valeur par défaut est une liste vide, ce qui signifie que les angles traditionnels par défaut seront utilisés (45 et 135 degrés)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Extrudeuse du dessus/dessous" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Le train d'extrudeuse utilisé pour l'impression de la couche extérieure du haut et du bas. Cela est utilisé en multi-extrusion." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "Partout" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Imprimer parois fines" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Imprimer les parties du modèle qui sont horizontalement plus fines que la taille de la buse." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Le décalage appliqué à tous les polygones dans chaque couche. Une val #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Expansion horizontale de la couche initiale" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Le décalage appliqué à tous les polygones dans la première couche. Une valeur négative peut compenser l'écrasement de la première couche, appelé « patte d'éléphant »." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Aléatoire" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Angle le plus aigu" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Coordonnée Y de la position près de laquelle démarrer l'impression de chaque partie dans une couche." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Préférence de jointure d'angle" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Vérifie si les angles du contour du modèle influencent l'emplacement de la jointure. « Aucune » signifie que les angles n'ont aucune influence sur l'emplacement de la jointure. « Masquer jointure » génère généralement le positionnement de la jointure sur un angle intérieur. « Exposer jointure » génère généralement le positionnement de la jointure sur un angle extérieur. « Masquer ou exposer jointure » génère généralement le positionnement de la jointure sur un angle intérieur ou extérieur." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Aucun" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Masquer jointure" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Exposer jointure" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Masquer ou exposer jointure" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Relatif à la jointure en Z" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Si cette option est activée, les coordonnées de la jointure z sont relatives au centre de chaque partie. Si elle est désactivée, les coordonnées définissent une position absolue sur le plateau." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Quand le modèle présente de petits trous verticaux, environ 5 % de temps de calcul supplémentaire peut être alloué à la génération de couches du dessus et du dessous dans ces espaces étroits. Dans ce cas, désactivez ce paramètre." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Nombre supplémentaire de parois extérieures" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Remplace la partie la plus externe du motif du dessus/dessous par un certain nombre de lignes concentriques. Le fait d'utiliser une ou deux lignes améliore les plafonds qui commencent sur du matériau de remplissage." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Remplissage" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Extrudeuse de remplissage" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Le train d'extrudeuse utilisé pour l'impression du remplissage. Cela est utilisé en multi-extrusion." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Motif de remplissage" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Le motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi les coûts matériels. Les motifs en grille, en triangle, cubiques, tétraédriques et concentriques sont entièrement imprimés sur chaque couche. Le remplissage cubique et tétraédrique change à chaque couche afin d'offrir une répartition plus égale de la solidité dans chaque direction." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Le motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi les coûts matériels. Les motifs en grille, en triangle, octaédriques, quart cubiques et concentriques sont entièrement imprimés sur chaque couche. Le remplissage cubique, quart cubique et octaédrique change à chaque couche afin d'offrir une répartition plus égale de la solidité dans chaque direction." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Subdivision cubique" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tétraédrique" +msgid "Octet" +msgstr "Octaédrique" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Quart cubique" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zig Zag" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Entrecroisé" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Entrecroisé 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Relier les lignes de remplissage" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Relie les extrémités où le motif de remplissage touche la paroi interne, à l'aide de lignes épousant la forme de la paroi interne. Activer ce paramètre peut faire mieux coller le remplissage aux parois, et réduit les effets du remplissage sur la qualité des surfaces verticales. Désactiver ce paramètre diminue la quantité de matière utilisée." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Pourcentage de chevauchement de la couche extérieure" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Le montant de chevauchement entre la couche extérieure et les parois en pourcentage de la largeur de ligne. Un chevauchement faible permet aux parois de se connecter fermement à la couche extérieure. Ce montant est un pourcentage des largeurs moyennes des lignes de la couche extérieure et de la paroi la plus intérieure." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Ne pas générer de zones de remplissage plus petites que cela (utiliser plutôt une couche extérieure)" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Étendre les couches extérieures dans le remplissage" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Largeur de retrait de la couche extérieure" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Étendre les zones de couche extérieure du haut et / ou du bas des surfaces planes. Par défaut, les couches extérieures s'arrêtent sous les lignes de paroi qui entourent le remplissage, mais cela peut entraîner l'apparition de trous si la densité de remplissage est faible. Ce paramètre permet d'étendre les couches extérieures au-delà des lignes de paroi de sorte que le remplissage sur les couches suivantes repose sur la couche extérieure." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "La plus grande largeur des zones de la couche extérieure à faire disparaître. Toute zone de la couche extérieure plus étroite que cette valeur disparaîtra. Ceci peut aider à limiter le temps et la quantité de matière utilisés pour imprimer la couche extérieure supérieure/inférieure sur les surfaces obliques du modèle." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Étendre les couches extérieures supérieures dans le remplissage" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Largeur de retrait de la couche extérieure supérieure" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Étendre les zones de couches extérieures supérieures (zones ayant de l'air au-dessus d'elles) de sorte à ce que le remplissage au-dessus repose sur elles." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "La plus grande largeur des zones de la couche extérieure supérieure à faire disparaître. Toute zone de la couche extérieure plus étroite que cette valeur disparaîtra. Ceci peut aider à limiter le temps et la quantité de matière utilisés pour imprimer la couche extérieure supérieure sur les surfaces obliques du modèle." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Étendre les couches extérieures inférieures dans le remplissage" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Largeur de retrait de la couche extérieure inférieure" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Étendre les zones de couches extérieures inférieures (zones ayant de l'air en-dessous d'elles) de sorte à ce qu'elles soient ancrées par les couches de remplissage au-dessus et en-dessous." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "La plus grande largeur des zones de la couche extérieure inférieure à faire disparaître. Toute zone de la couche extérieure plus étroite que cette valeur disparaîtra. Ceci peut aider à limiter le temps et la quantité de matière utilisés pour imprimer la couche extérieure inférieure sur les surfaces obliques du modèle." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Distance d'expansion de la couche extérieure" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "La distance par laquelle les couches extérieures sont étendues dans le remplissage. La distance par défaut est suffisante pour combler l'espace entre les lignes de remplissage et remédiera aux trous qui apparaissent là où la couche extérieure rencontre la paroi lorsque la densité de remplissage est faible. Une distance moindre sera souvent suffisante." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "La distance à laquelle les couches extérieures s'étendent à l'intérieur du remplissage. Des valeurs élevées lient mieux la couche extérieure au motif de remplissage et font mieux adhérer à cette couche les parois des couches voisines. Des valeurs faibles économisent la quantité de matériau utilisé." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Distance d'expansion de la couche extérieure supérieure" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "La distance à laquelle les couches extérieures supérieures s'étendent à l'intérieur du remplissage. Des valeurs élevées lient mieux la couche extérieure au motif de remplissage et font mieux adhérer à cette couche les parois de la couche supérieure. Des valeurs faibles économisent la quantité de matériau utilisé." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Distance d'expansion de la couche extérieure inférieure" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "La distance à laquelle les couches extérieures inférieures s'étendent à l'intérieur du remplissage. Des valeurs élevées lient mieux la couche extérieure au motif de remplissage et font mieux adhérer à cette couche les parois de la couche inférieure. Des valeurs faibles économisent la quantité de matériau utilisé." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "La vitesse à laquelle toutes les parois internes seront imprimées. L #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Vitesse de la couche extérieure de la surface supérieure" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "La vitesse à laquelle les couches extérieures de la surface supérieure sont imprimées." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "La vitesse à laquelle les couches du dessus/dessous sont imprimées." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "L'accélération selon laquelle toutes les parois intérieures sont impr #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Accélération de couche extérieure de surface supérieure" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "La vitesse à laquelle les couches extérieures de surface supérieure sont imprimées." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "L'accélération selon laquelle les couches du dessus/dessous sont imprimées." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Le changement instantané maximal de vitesse selon lequel les parois int #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Saccade de couches extérieures de la surface supérieure" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Le changement instantané maximal de vitesse selon lequel les couches extérieures de surface supérieure sont imprimées." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Le changement instantané maximal de vitesse selon lequel les couches du dessus/dessous sont imprimées." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zig Zag" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Entrecroisé" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Relie les zigzags. Cela augmente la solidité des supports en zigzag." #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Démantèlement du support en morceaux" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Ignorer certaines connexions de ligne du support pour rendre la structure de support plus facile à casser. Ce paramètre s'applique au motif de remplissage du support en zigzag." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Taille de morceaux du support" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Ignorer une connexion entre lignes du support tous les N millimètres, pour rendre la structure de support plus facile à casser." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Comptage des lignes de morceaux du support" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Ignorer une ligne de connexion sur N pour rendre la structure de support plus facile à casser." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "Le décalage appliqué à tous les polygones pour chaque couche. Une val #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Épaisseur de la couche de remplissage de support" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "L'épaisseur par couche de matériau de remplissage de support. Cette valeur doit toujours être un multiple de la hauteur de la couche et arrondie." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Étapes de remplissage graduel du support" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Nombre de fois pour réduire la densité de remplissage du support de moitié en poursuivant sous les surfaces du dessus. Les zones qui sont plus proches des surfaces du dessus possèdent une densité plus élevée, jusqu'à la Densité de remplissage du support." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Hauteur d'étape de remplissage graduel du support" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "La hauteur de remplissage de support d'une densité donnée avant de passer à la moitié de la densité." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"La distance horizontale entre la jupe et la première couche de l’impression.\n" -"Il s’agit de la distance minimale séparant la jupe de l’objet. Si la jupe a d’autres lignes, celles-ci s’étendront vers l’extérieur." +msgstr "La distance horizontale entre la jupe et la première couche de l’impression.\nIl s’agit de la distance minimale séparant la jupe de l’objet. Si la jupe a d’autres lignes, celles-ci s’étendront vers l’extérieur." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Imprimer uniquement la bordure sur l'extérieur du modèle. Cela réduit la quantité de bordure que vous devez retirer par la suite, sans toutefois véritablement réduire l'adhérence au plateau." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Décalage en Z de la couche initiale" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "L'extrudeuse est décalée de cette valeur à partir de la hauteur normale de la première couche. Elle peut être positive (relevée) ou négative (abaissée). Certains types de filament adhèrent mieux au plateau si l'extrudeuse est légèrement relevée." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Couches biseautées de décalage en Z" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Si non nul, le décalage en Z est ramené à 0 sur un grand nombre de couches. Une valeur égale à 0 signifie que le décalage en Z reste constant pour toutes les couches de l'impression." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Si vous avez appliqué un radeau, alors il s’agit de l’espace de radeau supplémentaire autour du modèle qui dispose déjà d’un radeau. L’augmentation de cette marge va créer un radeau plus solide, mais requiert davantage de matériau et laisse moins de place pour votre impression." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Lissage de radeau" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Ce paramètre définit combien d'angles intérieurs sont arrondis dans le contour de radeau. Les angles internes sont arrondis en un demi-cercle avec un rayon égal à la valeur indiquée ici. Ce paramètre élimine également les cavités dans le contour de radeau qui sont d'une taille inférieure à ce cercle." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Après un changement d'extrudeuse, essuie le matériau qui suinte de la #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Volume de purge de la tour primaire" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Quantité de filament à purger lors de l'essuyage de la tour primaire. La purge est utile pour compenser le filament perdu par la suinte pendant l'inactivité de la buse." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Lisser les contours spiralisés pour réduire la visibilité de la jointure en Z (la jointure en Z doit être à peine visible sur l'impression mais sera toujours visible dans la vue en couches). Veuillez remarquer que le lissage aura tendance à estomper les détails fins de la surface." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Extrusion relative" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Utiliser l'extrusion relative au lieu de l'extrusion absolue. L'utilisation de pas E relatifs facilite le post-traitement du G-code. Toutefois, elle n'est pas supportée par toutes les imprimantes et peut occasionner de très légers écarts dans la quantité de matériau déposé, en comparaison avec des pas E absolus. Indépendamment de ce paramètre, le mode d'extrusion sera défini par défaut comme absolu avant qu'un quelconque script de G-code soit produit." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "expérimental !" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Optimiser l'ordre d'impression des parois" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optimiser l'ordre dans lequel des parois sont imprimées de manière à réduire le nombre de retraits et les distances parcourues. La plupart des pièces bénéficieront de cette possibilité, mais certaines peuvent en fait prendre plus de temps à l'impression ; veuillez dès lors comparer les estimations de durée d'impression avec et sans optimisation." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Vitesse de déplacement pendant une roue libre, par rapport à la vitesse de déplacement pendant l'extrusion. Une valeur légèrement inférieure à 100 % est conseillée car, lors du mouvement en roue libre, la pression dans le tube bowden chute." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Nombre supplémentaire de parois extérieures" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Remplace la partie la plus externe du motif du dessus/dessous par un certain nombre de lignes concentriques. Le fait d'utiliser une ou deux lignes améliore les plafonds qui commencent sur du matériau de remplissage." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Alterne le sens d'impression des couches du dessus/dessous. Elles sont généralement imprimées uniquement en diagonale. Ce paramètre ajoute les sens X uniquement et Y uniquement." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Taille de poches entrecroisées 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "La taille de poches aux croisements à quatre branches dans le motif entrecroisé 3D, à des hauteurs où le motif se touche lui-même." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Alterner les poches entrecroisées 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Ne réalise des poches que sur la moitié des croisements à quatre branches dans le motif entrecroisé 3D et alterne l'emplacement des poches entre les hauteurs où le motif se touche lui-même." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Imprime régulièrement le remplissage afin que les filaments s'enroulen #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Étapes de remplissage en spaghettis" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Imprimer le remplissage en spaghettis étape par étape ou bien extruder tout le filament de remplissage à la fin de l'impression." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Ajuste la densité du remplissage en spaghettis. Veuillez noter que la d #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Volume supplémentaire de remplissage en spaghettis" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Terme de correction permettant d'ajuster le volume total extrudé à chaque fois lors du remplissage en spaghettis." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Distance d’un déplacement ascendant qui est extrudé à mi-vitesse.\n" -"Cela peut permettre une meilleure adhérence aux couches précédentes sans surchauffer le matériau dans ces couches. Uniquement applicable à l'impression filaire." +msgstr "Distance d’un déplacement ascendant qui est extrudé à mi-vitesse.\nCela peut permettre une meilleure adhérence aux couches précédentes sans surchauffer le matériau dans ces couches. Uniquement applicable à l'impression filaire." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Distance entre la buse et les lignes descendantes horizontalement. Un es #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Activer l'étirage" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Aller au-dessus de la surface supérieure une fois supplémentaire, mais sans extruder de matériau. Cela signifie de faire fondre le plastique en haut un peu plus, pour créer une surface lisse." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "N'étirer que la couche supérieure" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "N'exécute un étirage que sur l'ultime couche du maillage. Ceci économise du temps si les couches inférieures ne nécessitent pas de fini lisse de surface." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Motif d'étirage" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Le motif à utiliser pour étirer les surfaces supérieures." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrique" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zig Zag" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Interligne de l'étirage" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "La distance entre les lignes d'étirage." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Flux d'étirage" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "La quantité de matériau, relative à une ligne de couche extérieure normale, à extruder pendant l'étirage. Le fait de garder la buse pleine aide à remplir certaines des crevasses de la surface supérieure ; mais si la quantité est trop importante, cela entraînera une surextrusion et l'apparition de coupures sur le côté de la surface." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Insert d'étirage" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Distance à garder à partir des bords du modèle. Étirer jusqu'au bord de la maille peut entraîner l'apparition d'un bord denté sur votre impression." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Vitesse d'étirage" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "La vitesse à laquelle passer sur la surface supérieure." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Accélération d'étirage" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "L'accélération selon laquelle l'étirage est effectué." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Saccade d'étirage" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Le changement instantané maximal de vitesse lors de l'étirage." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Matrice de transformation à appliquer au modèle lors de son chargement depuis le fichier." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Extrudeuse de paroi" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Le train d'extrudeuse utilisé pour l'impression des parois. Cela est utilisé en multi-extrusion." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Le motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi les coûts matériels. Les motifs en grille, en triangle, cubiques, tétraédriques et concentriques sont entièrement imprimés sur chaque couche. Le remplissage cubique et tétraédrique change à chaque couche afin d'offrir une répartition plus égale de la solidité dans chaque direction." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Tétraédrique" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Étendre les couches extérieures dans le remplissage" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Étendre les zones de couche extérieure du haut et / ou du bas des surfaces planes. Par défaut, les couches extérieures s'arrêtent sous les lignes de paroi qui entourent le remplissage, mais cela peut entraîner l'apparition de trous si la densité de remplissage est faible. Ce paramètre permet d'étendre les couches extérieures au-delà des lignes de paroi de sorte que le remplissage sur les couches suivantes repose sur la couche extérieure." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Étendre les couches extérieures supérieures dans le remplissage" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Étendre les zones de couches extérieures supérieures (zones ayant de l'air au-dessus d'elles) de sorte à ce que le remplissage au-dessus repose sur elles." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Étendre les couches extérieures inférieures dans le remplissage" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Étendre les zones de couches extérieures inférieures (zones ayant de l'air en-dessous d'elles) de sorte à ce qu'elles soient ancrées par les couches de remplissage au-dessus et en-dessous." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "La distance par laquelle les couches extérieures sont étendues dans le remplissage. La distance par défaut est suffisante pour combler l'espace entre les lignes de remplissage et remédiera aux trous qui apparaissent là où la couche extérieure rencontre la paroi lorsque la densité de remplissage est faible. Une distance moindre sera souvent suffisante." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Ignorer certaines connexions ZigZag" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Ignorer certaines connexions ZigZag pour rendre la structure de support plus facile à casser." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Nombre d'omissions de connexion ZigZag" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Ignorer une ligne de connexion sur N pour rendre la structure de support plus facile à casser." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Afficher les variantes de la machine" @@ -4901,4 +5116,4 @@ msgstr "Matrice de transformation à appliquer au modèle lors de son chargement #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Chevauchement de double extrusion" +#~ msgstr "Chevauchement de double extrusion" \ No newline at end of file diff --git a/resources/i18n/it/cura.po b/resources/i18n/it_IT/cura.po similarity index 72% rename from resources/i18n/it/cura.po rename to resources/i18n/it_IT/cura.po index c8b96837eb..7354379afa 100644 --- a/resources/i18n/it/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Italian\n" -"Language: Italian\n" +"Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: it\n" -"Country-Code: IT\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Stampa interrotta" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Ostacolato" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Richiede un'azione" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Impossibile avviare la stampa" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Questa stampante non è predisposta per comandare un gruppo di stampanti Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Finisce alle: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Questa stampante comanda un gruppo di %1 stampanti Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "La stampante '{printer_name}' ha finito di stampare '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Stampa finita" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugin" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Sfoglia plugin..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Plugin installati..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Impostazioni macchina" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Raggi X" +msgid "X-Ray view" +msgstr "Vista ai raggi X" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "File GCode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Accetta i G-Code e li invia tramite WiFi a un Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Stampa Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Stampa con Doodle3D WiFi-Box" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Stampa con Doodle3D WiFi-Box" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Collegamento a Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Annulla" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Invio dati a Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Impossibile inviare dati a Doodle3D Connect. C'è un altro processo in corso?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Memorizzazione dati su Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "File inviato a Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Apri Connect.." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Stampa con" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Abilita dispositivi di scansione..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Apri interfaccia web Doodle3D Connect" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Impossibile avviare un nuovo processo di stampa perché la stampante è occupata o non collegata." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Dettagli stampa" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Questa stampante non supporta la stampa tramite USB in quanto utilizza la versione UltiGCode." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "Stampa USB" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Impossibile avviare un nuovo processo di stampa perché la stampante non supporta la stampa tramite USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Avvertenza" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Impossibile trovare il firmware richiesto per la stampante a %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "File X3G" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Firmware stampante" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Salva su unità rimovibile {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Salvataggio su unità rimovibile {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Salvataggio in corso" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "Impossibile salvare {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Salvato su unità rimovibile {0} come {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Impossibile trovare un nome file durante il tentativo di scrittura su {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Rimuovi" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Rimuovi il dispositivo rimovibile {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Impossibile salvare su unità rimovibile {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Errore" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Salvato su unità rimovibile {0} come {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "File salvato" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Rimuovi" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Rimuovi il dispositivo rimovibile {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Espulso {0}. È ora possibile rimuovere in modo sicuro l'unità." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Rimozione sicura dell'hardware" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Unità rimovibile" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Stampa sulla rete" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Stampa sulla rete" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Richiesto accesso alla stampante. Approvare la richiesta sulla stampante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Stato di connessione" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Stato di connessione" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Riprova" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Invia nuovamente la richiesta di accesso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Accesso alla stampante accettato" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Nessun accesso per stampare con questa stampante. Impossibile inviare il processo di stampa." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Richiesta di accesso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Invia la richiesta di accesso alla stampante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Collegato alla rete. Si prega di approvare la richiesta di accesso sulla stampante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Collegato alla rete." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Collegato alla rete. Nessun accesso per controllare la stampante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Richiesta di accesso negata sulla stampante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Richiesta di accesso non riuscita per superamento tempo." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Il collegamento con la rete si è interrotto." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Il collegamento con la stampante si è interrotto. Controllare la stampante per verificare se è collegata." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Impossibile avviare un nuovo processo di stampa perché la stampante è occupata. Stato stampante corrente %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Stato stampante" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Impossibile avviare un nuovo processo di stampa. Nessun Printcore caricato nello slot {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Impossibile avviare un nuovo processo di stampa. Nessun materiale caricato nello slot {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Materiale per la bobina insufficiente {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "PrintCore diverso (Cura: {0}, Stampante: {1}) selezionata per estrusore {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Materiale diverso (Cura: {0}, Stampante: {1}) selezionato per l’estrusore {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "PrintCore {0} non correttamente calibrato. Necessario eseguire calibrazione XY sulla stampante." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Sei sicuro di voler stampare con la configurazione selezionata?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Le configurazioni o la calibrazione della stampante e di Cura non corrispondono. Per ottenere i migliori risultati, sezionare sempre per i PrintCore e i materiali inseriti nella stampante utilizzata." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Mancata corrispondenza della configurazione" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Invio dati alla stampante in corso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Annulla" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Invio dati" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Impossibile inviare i dati alla stampante. Altro processo ancora attivo?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Interruzione stampa in corso..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Stampa interrotta. Controllare la stampante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Messa in pausa stampa..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Ripresa stampa..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Sincronizzazione con la stampante" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Desideri utilizzare la configurazione corrente della tua stampante in Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "I PrintCore e/o i materiali sulla stampante differiscono da quelli contenuti nel tuo attuale progetto. Per ottenere i risultati migliori, sezionare sempre per i PrintCore e i materiali inseriti nella stampante utilizzata." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Collega tramite rete" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Questa stampante non è configurata per supportare la connessione di un gruppo di stampanti Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Questa stampante fa da host per un gruppo di {count} stampanti Ultimaker 3 connesse." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} ha terminato la stampa '{job_name}'. Raccogliere la stampa e confermare la liberazione del piano di stampa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} è riservata per la stampa di '{job_name}'. Modificare la configurazione della stampante in modo che corrisponda al lavoro da eseguire per avviare il processo di stampa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Invio nuovi processi (temporaneamente) bloccato, invio in corso precedente processo di stampa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Impossibile inviare nuovo processo di stampa: questa stampante 3D non è (ancora) configurata per supportare la connessione di un gruppo di stampanti Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Invio {file_name} a gruppo {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "Inviato {file_name} a gruppo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Mostra processi di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Apre l'interfaccia processi di stampa sul browser." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Impossibile inviare processo di stampa a gruppo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Per verificare che la vostra {machine_name} sia dotata delle funzionalità più recenti, si consiglia di aggiornare periodicamente il firmware. Questo può essere fatto sulla {machine_name} (quando connessa alla rete) o via USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Nuovo firmware %s disponibile" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Download" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Non è possibile accedere alle informazioni di aggiornamento." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Rilevati errori all'apertura del file SolidWorks! Controllare se è possibile aprire il file in SolidWorks senza che si verifichino problemi!" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "File part SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "File gruppo SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Configura" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Errore durante l'avvio di %s!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "Modifica G-code" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura acquisisce dati statistici elaborati in forma anonima. L'acquisizione può essere disabilitata nelle preferenze." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Acquisizione dati" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Ignora" @@ -472,14 +743,19 @@ msgstr "File G-Code" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Strati" +msgid "Layer view" +msgstr "Visualizzazione strato" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura non visualizza in modo accurato gli strati se la funzione Wire Printing è abilitata" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Visualizzazione strato" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "Immagine GIF" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Il materiale selezionato è incompatibile con la macchina o la configurazione selezionata." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Impossibile eseguire il sezionamento con il materiale corrente in quanto incompatibile con la macchina o la configurazione selezionata." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Sezionamento impossibile" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Impossibile eseguire il sezionamento con le impostazioni attuali. Le seguenti impostazioni presentano errori: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Impossibile eseguire il sezionamento perché la torre di innesco o la posizione di innesco non sono valide." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Nulla da sezionare in quanto nessuno dei modelli corrisponde al volume di stampa. Ridimensionare o ruotare i modelli secondo necessità." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Elaborazione dei livelli" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informazioni" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Configura impostazioni per modello" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Consigliata" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Personalizzata" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "File 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Ugello" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Sfoglia plugin" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Impossibile ottenere ID plugin da {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Avvertenza" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Browser plugin" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solido" +msgid "Solid view" +msgstr "Visualizzazione compatta" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Parsing codice G" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Dettagli codice G" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Verifica che il codice G sia idoneo alla tua stampante e alla sua configurazione prima di trasmettere il file. La rappresentazione del codice G potrebbe non essere accurata." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "File 3MF Progetto Cura" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Seleziona aggiornamenti" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Livella piano di stampa" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Parete esterna" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Pareti interne" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Rivestimento esterno" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Riempimento" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Riempimento del supporto" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Interfaccia supporto" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Supporto" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Skirt" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Spostamenti" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Retrazioni" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Altro" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "File pre-sezionato {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Nessun materiale caricato" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Materiale sconosciuto" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Ricerca nuova posizione per gli oggetti" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Ricerca posizione" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Impossibile individuare una posizione nel volume di stampa per tutti gli oggetti" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Impossibile individuare posizione" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Il file esiste già" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "Il file {0} esiste già. Sei sicuro di voler sovrascrivere?" +msgstr "Il file {0} esiste già. Sei sicuro di volerlo sovrascrivere?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Personalizzata" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Materiale personalizzato" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Il materiale selezionato è incompatibile con la macchina o la configurazione selezionata." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Materiale incompatibile" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Il diametro del materiale selezionato lo rende incompatibile con l'attuale stampante." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Annulla" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Annulla modifica del diametro del materiale." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" -msgstr "Impossibile esportare profilo su {0}: {1}" +msgstr "Impossibile esportare il profilo su {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Impossibile esportare profilo su {0}: Errore di plugin writer." +msgstr "Impossibile esportare il profilo su {0}: Rilevata anomalia durante scrittura plugin." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Profilo esportato su {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Impossibile importare profilo da {0}: {1}" +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Dettagli esportazione" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to import profile from {0}: {1}" +msgstr "Impossibile importare il profilo da {0}: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Profilo importato correttamente {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Il profilo {0} ha un tipo di file sconosciuto o corrotto." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Profilo personalizzato" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Il profilo è privo del tipo di qualità." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Impossibile trovare un tipo qualità {0} per la configurazione corrente." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "L’altezza del volume di stampa è stata ridotta a causa del valore dell’impostazione \"Sequenza di stampa” per impedire la collisione del gantry con i modelli stampati." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Volume di stampa" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Moltiplicazione e collocazione degli oggetti" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Sistemazione oggetto" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Si è verificata un'eccezione fatale che non stato possibile superare!

\n" -"

Utilizzare le informazioni sotto riportate per inviare un rapporto sull'errore a http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Si è verificata un'eccezione fatale che non stato possibile superare!

\n

Utilizzare le informazioni sotto riportate per inviare un rapporto sull'errore a http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Apri pagina Web" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Caricamento macchine in corso..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Impostazione scena in corso..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Caricamento interfaccia in corso..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "È possibile caricare un solo file codice G per volta. Importazione saltata {0}" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (Larghezza)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (Altezza)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Forma del piano di stampa" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Origine al centro" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Piano riscaldato" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Versione GCode" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distanza tra il lato sinistro della testina di stampa e il centro dell'ugello. Utilizzata per evitare collisioni tra le stampe precedenti e la testina di stampa durante la stampa \"Uno alla volta\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distanza tra il lato anteriore della testina di stampa e il centro dell'ugello. Utilizzata per evitare collisioni tra le stampe precedenti e la testina di stampa durante la stampa \"Uno alla volta\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distanza tra il lato destro della testina di stampa e il centro dell'ugello. Utilizzata per evitare collisioni tra le stampe precedenti e la testina di stampa durante la stampa \"Uno alla volta\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distanza tra il lato posteriore della testina di stampa e il centro dell'ugello. Utilizzata per evitare collisioni tra le stampe precedenti e la testina di stampa durante la stampa \"Uno alla volta\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Altezza gantry" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "La differenza di altezza tra la punta dell’ugello e il sistema gantry (assi X e Y). Utilizzata per evitare collisioni tra le stampe precedenti e il gantry durante la stampa \"Uno alla volta\"." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Numero di estrusori" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Diametro nominale del filamento supportato dalla stampante. Il diametro esatto verrà sovrapposto dal materiale e/o dal profilo." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Diametro materiale" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Dimensione ugello" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Avvio GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Comandi Gcode da eseguire all’avvio." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Fine GCode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Comandi Gcode da eseguire alla fine." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Impostazioni ugello" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Scostamento X ugello" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Scostamento Y ugello" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Codice G avvio estrusore" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Codice G fine estrusore" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Impostazioni Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Salva" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Stampa a: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Temperatura estrusore: %1/%2°C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Temperatura piano di stampa: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Stampa" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Registro modifiche" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Codice errore sconosciuto: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Collega alla stampante in rete" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Per stampare direttamente sulla stampante in rete, verificare che la stampante desiderata sia collegata alla rete mediante un cavo di rete o mediante collegamento alla rete WIFI. Se si collega Cura alla stampante, è comunque possibile utilizzare una chiavetta USB per trasferire i file codice G alla stampante.\n" -"\n" -"Selezionare la stampante dall’elenco seguente:" +msgstr "Per stampare direttamente sulla stampante in rete, verificare che la stampante desiderata sia collegata alla rete mediante un cavo di rete o mediante collegamento alla rete WIFI. Se si collega Cura alla stampante, è comunque possibile utilizzare una chiavetta USB per trasferire i file codice G alla stampante.\n\nSelezionare la stampante dall’elenco seguente:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Aggiungi" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Modifica" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Rimuovi" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Aggiorna" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Se la stampante non è nell’elenco, leggere la guida alla risoluzione dei problemi per la stampa in rete" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Tipo" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Sconosciuto" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Versione firmware" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Indirizzo" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "La stampante a questo indirizzo non ha ancora risposto." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Collega" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Indirizzo stampante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Inserire l’indirizzo IP o l’hostname della stampante sulla rete." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Collega a una stampante" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Carica la configurazione della stampante in Cura" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Attiva la configurazione" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Questa stampante non è configurata per supportare la connessione di un gruppo di stampanti Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Questa stampante fa da host per un gruppo di %1 stampanti Ultimaker 3 connesse" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Stampa sulla rete" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 non è configurata per supportare la connessione di un gruppo di stampanti Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Stampa in corso" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Riservato" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Terminato" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Preparazione in corso" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Disponibile" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Completato su: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Cancellare piano di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Preparazione della stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Mancata accettazione processi di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Apre la pagina processi di stampa con il browser web predefinito." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Visualizza processi di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "GRUPPO STAMPANTI" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Processi di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Stampa in corso" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Coda di stampa" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "In attesa di modifica configurazione" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Stampanti" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Visualizza stampanti" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Configurazione plugin Cura SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Qualità predefinita STL esportato:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Chiedi sempre" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Utilizza sempre la qualità Fine" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Utilizza sempre la qualità Grossolana" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Importa file SolidWorks come STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Qualità STL esportato" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Qualità" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Grossolana" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Fine" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Modifica script di post-elaborazione attivi" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Modalità di visualizzazione: strati" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Schema colori" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Colore materiale" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Tipo di linea" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Modalità di compatibilità" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Mostra spostamenti" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Mostra helper" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Mostra guscio" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Mostra riempimento" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Mostra solo strati superiori" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Mostra 5 strati superiori in dettaglio" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Superiore / Inferiore" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Parete interna" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Smoothing" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Seleziona impostazioni" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Seleziona impostazioni di personalizzazione per questo modello" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtro..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Mostra tutto" @@ -1613,27 +2083,45 @@ msgstr "Apri" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Trova e Aggiorna plugin" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Qui è possibile trovare un elenco dei plugin forniti da terzi." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Aggiorna" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Installa" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Accordo di licenza plugin" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " I plugin contengono una licenza.\nÈ necessario accettare questa licenza per poter installare il plugin.\nAccetti i termini sotto riportati?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Accetto" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Non accetto" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "È tutto in ordine! Controllo terminato." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Non collegato ad una stampante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "La stampante non accetta comandi" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "In manutenzione. Controllare la stampante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Persa connessione con la stampante" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Stampa in corso..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "In pausa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Preparazione in corso..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Rimuovere la stampa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Riprendi" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pausa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Interrompi la stampa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Interrompi la stampa" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Sei sicuro di voler interrompere la stampa?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Sono state personalizzate alcune impostazioni del profilo.\n" -"Mantenere o eliminare tali impostazioni?" +msgstr "Sono state personalizzate alcune impostazioni del profilo.\nMantenere o eliminare tali impostazioni?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Valore personalizzato" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Chiedi sempre" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Elimina e non chiedere nuovamente" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Mantieni e non chiedere nuovamente" @@ -2038,7 +2524,7 @@ msgstr "Controlla tutto" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Calcolato" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Unità" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Generale" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Lingua:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Valuta:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Tema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Riavviare l'applicazione per rendere effettive le modifiche." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Seziona automaticamente alla modifica delle impostazioni." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Seziona automaticamente" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Comportamento del riquadro di visualizzazione" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Evidenzia in rosso le zone non supportate del modello. In assenza di supporto, queste aree non saranno stampate in modo corretto." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Visualizza sbalzo" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Sposta la fotocamera in modo che il modello si trovi al centro della visualizzazione quando è selezionato" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Centratura fotocamera alla selezione dell'elemento" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Il comportamento dello zoom predefinito di Cura dovrebbe essere invertito?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Inverti la direzione dello zoom della fotocamera." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Lo zoom si muove nella direzione del mouse?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Zoom verso la direzione del mouse" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "I modelli sull’area di stampa devono essere spostati per evitare intersezioni?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Assicurarsi che i modelli siano mantenuti separati" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "I modelli sull’area di stampa devono essere portati a contatto del piano di stampa?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Rilascia automaticamente i modelli sul piano di stampa" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Visualizza il messaggio di avvertimento sul lettore codice G." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Messaggio di avvertimento sul lettore codice G" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Lo strato deve essere forzato in modalità di compatibilità?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Forzare la modalità di compatibilità visualizzazione strato (riavvio necessario)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Apertura e salvataggio file" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "I modelli devono essere ridimensionati al volume di stampa, se troppo grandi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Ridimensiona i modelli troppo grandi" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Un modello può apparire eccessivamente piccolo se la sua unità di misura è espressa in metri anziché in millimetri. Questi modelli devono essere aumentati?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Ridimensiona i modelli eccessivamente piccoli" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Al nome del processo di stampa deve essere aggiunto automaticamente un prefisso basato sul nome della stampante?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Aggiungi al nome del processo un prefisso macchina" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Quando si salva un file di progetto deve essere visualizzato un riepilogo?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Visualizza una finestra di riepilogo quando si salva un progetto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Comportamento predefinito all'apertura di un file progetto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Comportamento predefinito all'apertura di un file progetto: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Chiedi sempre" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Apri sempre come progetto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Importa sempre i modelli" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Dopo aver modificato un profilo ed essere passati a un altro, si apre una finestra di dialogo che chiede se mantenere o eliminare le modifiche oppure se scegliere un comportamento predefinito e non visualizzare più tale finestra di dialogo." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Override profilo" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Privacy" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Cura deve verificare la presenza di eventuali aggiornamenti all’avvio del programma?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Controlla aggiornamenti all’avvio" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "I dati anonimi sulla stampa devono essere inviati a Ultimaker? Nota, non sono trasmessi o memorizzati modelli, indirizzi IP o altre informazioni personali." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Invia informazioni di stampa (anonime)" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Stampanti" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "In attesa di un processo di stampa" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profili" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Esporta profilo" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materiali" @@ -2472,12 +2958,12 @@ msgid "Import Material" msgstr "Importa materiale" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr "Impossibile importare materiale %1: %2" +msgstr "Impossibile importare materiale {1}: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "Materiale importato correttamente %1" @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Esporta materiale" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" -msgstr "Impossibile esportare materiale su %1: %2" +msgstr "Impossibile esportare il materiale su %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Materiale esportato correttamente su %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Aggiungi stampante" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Aggiungi stampante" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Parete esterna" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Pareti interne" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Rivestimento esterno" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Riempimento" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Riempimento del supporto" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Interfaccia supporto" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Supporto" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Spostamenti" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Retrazioni" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Altro" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura è stato sviluppato da Ultimaker B.V. in cooperazione con la comunità.\n" -"Cura è orgogliosa di utilizzare i seguenti progetti open source:" +msgstr "Cura è stato sviluppato da Ultimaker B.V. in cooperazione con la comunità.\nCura è orgogliosa di utilizzare i seguenti progetti open source:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Formato scambio dati" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Libreria di supporto per calcolo scientifico" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "Icone SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profilo:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Alcuni valori di impostazione/esclusione sono diversi dai valori memorizzati nel profilo.\n\nFare clic per aprire la gestione profili." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Ricerca..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Copia valore su tutti gli estrusori" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Nascondi questa impostazione" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Nascondi questa impostazione" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Mantieni visibile questa impostazione" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Configurazione visibilità delle impostazioni in corso..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Alcune impostazioni nascoste utilizzano valori diversi dal proprio valore normale calcolato.\n" -"\n" -"Fare clic per rendere visibili queste impostazioni." +msgstr "Alcune impostazioni nascoste utilizzano valori diversi dal proprio valore normale calcolato.\n\nFare clic per rendere visibili queste impostazioni." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Questa impostazione ha un valore diverso dal profilo.\n" -"\n" -"Fare clic per ripristinare il valore del profilo." +msgstr "Questa impostazione ha un valore diverso dal profilo.\n\nFare clic per ripristinare il valore del profilo." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Questa impostazione normalmente viene calcolata, ma attualmente ha impostato un valore assoluto.\n" -"\n" -"Fare clic per ripristinare il valore calcolato." +msgstr "Questa impostazione normalmente viene calcolata, ma attualmente ha impostato un valore assoluto.\n\nFare clic per ripristinare il valore calcolato." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Impostazione di stampa" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Impostazione di stampa disabilitata\n" -"I file codice G non possono essere modificati" +msgstr "Impostazione di stampa disabilitata\nI file codice G non possono essere modificati" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00h 00min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Informazioni su tempo" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Tempo di stampa" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Impostazione di stampa consigliata

Stampa con le impostazioni consigliate per la stampante, il materiale e la qualità selezionati." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Impostazione di stampa personalizzata

Stampa con il controllo grana fine su ogni sezione finale del processo di sezionamento." @@ -2807,7 +3253,7 @@ msgstr "&Visualizza" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automatico: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Nessuna stampante collegata" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Estremità calda" +msgid "Extruder" +msgstr "Estrusore" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Temperatura target dell'estremità riscaldata. L'estremità riscaldata si riscalderà o raffredderà sino a questo valore di temperatura. Se questo è 0, l'estremità riscaldata verrà spenta." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "La temperatura corrente di questo estrusore." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Il colore del materiale di questo estrusore." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Il materiale di questo estrusore." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "L’ugello inserito in questo estrusore." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Piano di stampa" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "La temperatura target del piano riscaldato. Il piano verrà riscaldato o raffreddato a questa temperatura. Se è 0, il riscaldamento del piano viene disattivato." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "La temperatura corrente del piano riscaldato." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "La temperatura di preriscaldo del piano." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Annulla" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Pre-riscaldo" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Riscalda il piano prima della stampa. È possibile continuare a regolare la stampa durante il riscaldamento e non è necessario attendere il riscaldamento del piano quando si è pronti per la stampa." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Stampa attiva" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Nome del processo" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Tempo di stampa" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Tempo residuo stimato" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Configura visibilità delle impostazioni..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Caricare un modello 3D" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Pronto per il sezionamento" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Sezionamento in corso..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Pronto a %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Sezionamento impossibile" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Sezionamento non disponibile" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Prepara" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Annulla" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Seleziona l'unità di uscita attiva" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Apri file" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Help" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Apri file" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Modalità di visualizzazione" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Impostazioni" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Nuovo progetto" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Sei sicuro di voler aprire un nuovo progetto? Questo cancellerà il piano di stampa e tutte le impostazioni non salvate." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Installa plugin" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Apri file" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Rilevata la presenza di uno o più file codice G tra i file selezionati. È possibile aprire solo un file codice G alla volta. Se desideri aprire un file codice G, selezionane uno solo. " @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Non mostrare il riepilogo di progetto alla ripetizione di salva" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Salva" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Prepara" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Controlla" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Altezza dello strato" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Velocità di stampa" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Più lenta" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Più veloce" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Riempimento" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Un riempimento vuoto lascerà il modello cavo e poco resistente." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Un riempimento leggero (20%) fornirà al modello una resistenza media." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Un riempimento denso (50%) fornirà al modello una resistenza superiore alla media." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Un riempimento solido (100%) renderà il modello completamente pieno." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Graduale" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Un riempimento graduale aumenterà gradualmente la quantità di riempimento verso l'alto." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Consenti variazione graduale" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Generazione supporto" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Genera strutture per supportare le parti del modello a sbalzo. Senza queste strutture, queste parti collasserebbero durante la stampa." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Estrusore del supporto" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Seleziona l’estrusore da utilizzare per la stampa di strutture di supporto. Ciò consentirà di costruire strutture di supporto sotto il modello per evitare cedimenti del modello o di stampare a mezz'aria." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Adesione piano di stampa" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Abilita stampa di brim o raft. Questa funzione aggiunge un’area piana attorno o sotto l’oggetto, facile da tagliare successivamente." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Serve aiuto per migliorare le tue stampe?
Leggi la Guida alla ricerca e riparazione guasti Ultimaker" @@ -3406,8 +3838,8 @@ msgstr "Serve aiuto per migliorare le tue stampe?
Leggi la Guid msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stampa modello selezionato con %1" +msgstr[1] "Stampa modelli selezionati con %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Log motore" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Materiale" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Controllo compatibilità materiale" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Fai clic per verificare la compatibilità del materiale su Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profilo:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Alcuni valori di impostazione/esclusione sono diversi dai valori memorizzati nel profilo.\n" -"\n" -"Fare clic per aprire la gestione profili." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Fornisce un modo per modificare le impostazioni della macchina (come il volume di stampa, la dimensione ugello, ecc.)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Azione Impostazioni macchina" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Fornisce la vista a raggi X." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Vista ai raggi X" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Fornisce il supporto per la lettura di file X3D." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "Lettore X3D" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Scrive il GCode in un file." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "Writer GCode" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Scarica contenuto di tutte le impostazioni in un file HTML." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Modalità God" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Accetta i G-Code e li invia tramite WiFi a un Doodle3D WiFi-Box." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Mostra le modifiche dall'ultima versione selezionata." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Registro modifiche" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Crea un profilo appiattito." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Appiattitore di profilo" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Accetta i G-Code e li invia ad una stampante. I plugin possono anche aggiornare il firmware." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "Stampa USB" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Fornisce il collegamento a caldo dell'unità rimovibile e il supporto per la scrittura." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Plugin dispositivo di output unità rimovibile" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Gestisce le connessioni di rete alle stampanti Ultimaker 3" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "Connessione di rete UM3" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Connessione di rete UM3 (Cluster)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Controlla disponibilità di aggiornamenti firmware." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Controllo aggiornamento firmware" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Offre la possibilità di aprire alcuni file tramite SolidWorks stessa. Questi vengono quindi convertiti e caricati in Cura" #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "Integrazione SolidWorks" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Estensione che consente la post-elaborazione degli script creati da utente" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Post-elaborazione" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Salva automaticamente preferenze, macchine e profili dopo le modifiche." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Salvataggio automatico" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Invia informazioni su sezionamento anonime Può essere disabilitato tramite le preferenze." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Informazioni su sezionamento" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Offre la possibilità di leggere e scrivere profili di materiali basati su XML." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Profili del materiale" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Fornisce supporto per l'importazione di profili dalle versioni legacy Cura." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Lettore legacy profilo Cura" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Fornisce supporto per l'importazione di profili da file G-Code." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "Lettore profilo GCode" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Fornisce la visualizzazione degli strati." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Visualizzazione strato" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Aggiorna le configurazioni da Cura 2.5 a Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Aggiornamento della versione da 2.5 a 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Aggiorna le configurazioni da Cura 2.7 a Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Aggiornamento della versione da 2.7 a 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Aggiorna le configurazioni da Cura 2.6 a Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Aggiornamento della versione da 2.6 a 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Aggiorna le configurazioni da Cura 2.1 a Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Aggiornamento della versione da 2.1 a 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Aggiorna le configurazioni da Cura 2.2 a Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Aggiornamento della versione da 2.2 a 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Abilita la possibilità di generare geometria stampabile da file immagine 2D." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Lettore di immagine" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Fornisce il collegamento al back-end di sezionamento CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "Back-end CuraEngine" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Fornisce le impostazioni per modello." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Utilità impostazioni per modello" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Fornisce il supporto per la lettura di file 3MF." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "Lettore 3MF" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Trova, gestisce e installa nuovi plugin." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Browser plugin" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Fornisce una normale visualizzazione a griglia compatta." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Visualizzazione compatta" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Consente il caricamento e la visualizzazione dei file codice G." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "Lettore codice G" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Fornisce supporto per l'esportazione dei profili Cura." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Writer profilo Cura" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Fornisce il supporto per la scrittura di file 3MF." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "Writer 3MF" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Fornisce azioni macchina per le macchine Ultimaker (come la procedura guidata di livellamento del piano di stampa, la selezione degli aggiornamenti, ecc.)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Azioni della macchina Ultimaker" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Fornisce supporto per l'importazione dei profili Cura." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Lettore profilo Cura" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Raggi X" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Accetta i G-Code e li invia tramite WiFi a un Doodle3D WiFi-Box." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Stampa Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Stampa con Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Stampa con" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Abilita dispositivi di scansione..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "File X3G" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Salvataggio su unità rimovibile {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Impossibile salvare {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Tenere presente che è necessario riaprire il file SolidWorks manualmente! Il ricaricamento del modello non funziona!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Strati" + +#~ msgid "Browse plugins" +#~ msgstr "Sfoglia plugin" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Solido" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Il file {0} esiste già. Sei sicuro di voler sovrascrivere?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Impossibile esportare profilo su {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Impossibile esportare profilo su {0}: Errore di plugin writer." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Profilo esportato su {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Impossibile importare profilo da {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Impostazioni Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Stampa a: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Temperatura estrusore: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Temperatura piano di stampa: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Modalità di visualizzazione: strati" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Impossibile importare materiale %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Materiale importato correttamente %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Impossibile esportare materiale su %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Materiale esportato correttamente su %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Estremità calda" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Modalità di visualizzazione" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Stampa" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Un riempimento vuoto lascerà il modello cavo e poco resistente." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Un riempimento leggero (20%) fornirà al modello una resistenza media." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Un riempimento denso (50%) fornirà al modello una resistenza superiore alla media." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Un riempimento solido (100%) renderà il modello completamente pieno." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Graduale" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Fornisce il supporto per la scrittura di file X3G" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "Writer X3G" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/it/fdmextruder.def.json.po b/resources/i18n/it_IT/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/it/fdmextruder.def.json.po rename to resources/i18n/it_IT/fdmextruder.def.json.po index 4f37a3a8d3..75d0d77472 100644 --- a/resources/i18n/it/fdmextruder.def.json.po +++ b/resources/i18n/it_IT/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:31+0200\n" "Last-Translator: Bothof \n" "Language-Team: Italian\n" -"Language: Italian\n" +"Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: it\n" -"Country-Code: IT\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "Treno estrusore utilizzato per la stampa. Utilizzato nell’estrusione m #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID ugello" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "ID ugello per un treno estrusore, come \"AA 0.4\" e \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/it/fdmprinter.def.json.po b/resources/i18n/it_IT/fdmprinter.def.json.po similarity index 88% rename from resources/i18n/it/fdmprinter.def.json.po rename to resources/i18n/it_IT/fdmprinter.def.json.po index dcc40f3f18..d618ecfeac 100644 --- a/resources/i18n/it/fdmprinter.def.json.po +++ b/resources/i18n/it_IT/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Italian\n" -"Language: Italian\n" +"Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: it\n" -"Country-Code: IT\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "Il nome del modello della stampante 3D in uso." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Mostra varianti macchina" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"I comandi codice G da eseguire all’avvio, separati da \n" -"." +msgstr "I comandi codice G da eseguire all’avvio, separati da \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"I comandi codice G da eseguire alla fine, separati da \n" -"." +msgstr "I comandi codice G da eseguire alla fine, separati da \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "Il GUID del materiale. È impostato automaticamente. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Attendi il riscaldamento del piano di stampa" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Sceglie se inserire un comando per attendere finché la temperatura del #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Attendi il riscaldamento dell’ugello" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Sceglie se attendere finché la temperatura dell’ugello non viene ragg #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Includi le temperature del materiale" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Sceglie se includere comandi temperatura ugello all’avvio del codice G #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Includi temperatura piano di stampa" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Sceglie se includere comandi temperatura piano di stampa all’avvio del #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Larghezza macchina" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "La larghezza (direzione X) dell’area stampabile." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Profondità macchina" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "La profondità (direzione Y) dell’area stampabile." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Forma del piano di stampa" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Ellittica" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Altezza macchina" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "L’altezza (direzione Z) dell’area stampabile." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Piano di stampa riscaldato" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Indica se la macchina ha un piano di stampa riscaldato." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Origine del centro" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Il tipo di codice G da generare." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (volumetrica)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "La differenza di altezza tra la punta dell’ugello e il sistema gantry #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID ugello" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "ID ugello per un treno estrusore, come \"AA 0.4\" e \"BB 0.8\"." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "Indica la larghezza di una singola linea della parete per tutte le linee #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Larghezza linea rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Larghezza di un singola linea delle aree nella parte superiore della stampa" #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Indica la larghezza di una singola linea della torre di innesco." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Larghezza linea strato iniziale" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Moltiplicatore della larghezza della linea del primo strato Il suo aumento potrebbe migliorare l'adesione al piano" #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Guscio" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Estrusore parete esterna" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Treno estrusore utilizzato per stampare la parete esterna. Si utilizza nell'estrusione multipla." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Estrusore parete interna" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "Treno estrusore utilizzato per stampare le pareti interne. Si utilizza nell'estrusione multipla." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Spessore delle pareti" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Spessore delle pareti in direzione orizzontale. Questo valore diviso per la larghezza della linea della parete definisce il numero di pareti." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Distanza di spostamento inserita dopo la parete esterna per nascondere m #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Estrusore rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "Treno estrusore utilizzato per stampare il rivestimento più in alto. Si utilizza nell'estrusione multipla." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Strati di rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Numero degli strati di rivestimento superiori. Solitamente è sufficiente un unico strato di sommità per ottenere superfici superiori di qualità elevata." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Configurazione del rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Configurazione degli strati superiori." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Linee" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrica" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zig Zag" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Direzioni linea rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Un elenco di direzioni linee intere da usare quando gli strati rivestimento superficie superiore utilizzano le linee o la configurazione zig zag. Gli elementi dall’elenco sono utilizzati in sequenza con il progredire degli strati e, al raggiungimento della fine dell’elenco, la sequenza ricomincia dall’inizio. Le voci elencate sono separate da virgole e l’intero elenco è racchiuso tra parentesi quadre. L’elenco predefinito è vuoto, vale a dire che utilizza i valori angolari predefiniti (45 e 135 gradi)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Estrusore superiore/inferiore" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Treno estrusore utilizzato per stampare il rivestimento superiore e quello inferiore. Si utilizza nell'estrusione multipla." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "In tutti i possibili punti" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Stampa pareti sottili" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Stampa parti del modello orizzontalmente più sottili delle dimensioni dell'ugello." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Determina l'entità di offset (o estensione dello strato) applicata a tu #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Espansione orizzontale dello strato iniziale" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "È l'entità di offset (estensione dello strato) applicata a tutti i poligoni di supporto in ciascuno strato. Un valore negativo può compensare lo schiacciamento del primo strato noto come \"zampa di elefante\"." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Casuale" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Angolo più acuto" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "La coordinata Y della posizione in prossimità della quale si innesca all’avvio della stampa di ciascuna parte in uno strato." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Preferenze angolo giunzione" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Controlla se gli angoli sul profilo del modello influenzano la posizione della giunzione. Nessuno significa che gli angoli non hanno alcuna influenza sulla posizione della giunzione. Nascondi giunzione favorisce la presenza della giunzione su un angolo interno. Esponi giunzione favorisce la presenza della giunzione su un angolo esterno. Nascondi o esponi giunzione favorisce la presenza della giunzione su un angolo interno o esterno." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Nessuno" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Nascondi giunzione" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Esponi giunzione" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Nascondi o esponi giunzione" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Riferimento giunzione Z" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Se abilitato, le coordinate della giunzione Z sono riferite al centro di ogni parte. Se disabilitato, le coordinate definiscono una posizione assoluta sul piano di stampa." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Quando il modello presenta piccoli spazi vuoti verticali, circa il 5% del tempo di calcolo supplementare può essere utilizzato per la generazione di rivestimenti esterni superiori ed inferiori in questi interstizi. In questo caso disabilitare l’impostazione." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Numero di pareti di rivestimento esterno supplementari" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Sostituisce la parte più esterna della configurazione degli strati superiori/inferiori con una serie di linee concentriche. L’utilizzo di una o due linee migliora le parti superiori (tetti) che iniziano sul materiale di riempimento." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Riempimento" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Estrusore riempimento" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Treno estrusore utilizzato per stampare il riempimento. Si utilizza nell'estrusione multipla." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Configurazione di riempimento" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Indica la configurazione del materiale di riempimento della stampa. Il riempimento a linea e a zig zag cambia direzione su strati alternati, riducendo il costo del materiale. Le configurazioni a griglia, triangolo, cubo, tetraedriche e concentriche sono stampate completamente su ogni strato. Il riempimento delle configurazioni cubiche e tetraedriche cambia ad ogni strato per fornire una distribuzione più uniforme della forza su ciascuna direzione." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Configurazione del materiale di riempimento della stampa. Il riempimento a linea e zig zag su strati alternati riduce il costo del materiale. Le configurazioni a griglia, triangolo, a cubo, ottagonale, a quarto di cubo e concentrica comportano la stampa completa in ogni strato. Il riempimento a cubi, a quarto di cubo e a ottagonale cambia a ogni strato per consentire una distribuzione più uniforme della resistenza in ogni direzione." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Suddivisione in cubi" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tetraedro" +msgid "Octet" +msgstr "Ottagonale" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Quarto di cubo" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zig Zag" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Incrociata" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Incrociata 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Collegamento delle linee di riempimento" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Collega le estremità in cui la configurazione del riempimento incontra la parete interna utilizzando linee che seguono il profilo della parete interna stessa. Consentendo tale configurazione è possibile fare in modo che il riempimento aderisca meglio alle pareti riducendo gli effetti dello stesso sulla qualità delle superfici verticali. Disabilitando questa configurazione si riduce la quantità di materiale utilizzato." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Percentuale di sovrapposizione del rivestimento esterno" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Entità della sovrapposizione tra il rivestimento e le pareti espressa in percentuale della larghezza della linea. Una leggera sovrapposizione consente alle pareti di essere saldamente collegate al rivestimento. È una percentuale delle larghezze medie delle linee del rivestimento e della parete più interna." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Non generare aree di riempimento inferiori a questa (piuttosto usare il rivestimento esterno)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Prolunga rivestimenti esterni nel riempimento" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Larghezza rimozione rivestimento" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Prolunga le aree di rivestimento esterno superiori e/o inferiori delle superfici piatte. Per default, i rivestimenti esterni si interrompono sotto le linee delle pareti circostanti il riempimento, ma questo può generare la comparsa di fori quando la densità del riempimento è bassa. Questa impostazione prolunga i rivestimenti esterni oltre le linee delle pareti in modo che il riempimento sullo strato successivo appoggi sul rivestimento esterno." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Larghezza massima delle aree di rivestimento che è possibile rimuovere. Ogni area di rivestimento più piccola di questo valore verrà eliminata. Questo può aiutare a limitare il tempo e il materiale necessari per la stampa del rivestimento superiore/inferiore sulle superfici inclinate del modello." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Prolunga rivestimenti esterni superiori nel riempimento" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Larghezza rimozione rivestimento superiore" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Prolunga le aree di rivestimento esterno superiori (aree con aria al di sopra) in modo che supportino il riempimento sovrastante." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Larghezza massima delle aree di rivestimento superiore che è possibile rimuovere. Ogni area di rivestimento più piccola di questo valore verrà eliminata. Questo può aiutare a limitare il tempo e il materiale necessari per la stampa del rivestimento superiore sulle superfici inclinate del modello." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Prolunga rivestimenti esterni inferiori nel riempimento" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Larghezza rimozione rivestimento inferiore" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Prolunga aree rivestimento esterno inferiori (aree con aria al di sotto) in modo che siano ancorate dagli strati di riempimento sovrastanti e sottostanti." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Larghezza massima delle aree di rivestimento inferiore che è possibile rimuovere. Ogni area di rivestimento più piccola di questo valore verrà eliminata. Questo può aiutare a limitare il tempo e il materiale necessari per la stampa del rivestimento inferiore sulle superfici inclinate del modello." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Distanza prolunga rivestimento esterno" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "La distanza di prolungamento dei rivestimenti esterni nel riempimento. La distanza preimpostata è sufficiente per coprire lo spazio tra le linee di riempimento e chiude i fori che si presentano sul rivestimento esterno nel punto in cui incontra la parete quando la densità del riempimento è bassa. Una distanza inferiore sovente è sufficiente." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Distanza per cui i rivestimenti si estendono nel riempimento. Valori maggiori migliorano l'aderenza del rivestimento al riempimento e consentono una migliore aderenza al rivestimento delle pareti degli strati adiacenti. Valori minori consentono di risparmiare sul materiale utilizzato." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Distanza prolunga rivestimento superiore" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Distanza per cui i rivestimenti superiori si estendono nel riempimento. Valori maggiori migliorano l'aderenza del rivestimento al riempimento e consentono una migliore aderenza al rivestimento delle pareti dello strato superiore. Valori minori consentono di risparmiare sul materiale utilizzato." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Distanza prolunga rivestimento inferiore" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Distanza per cui i rivestimenti inferiori si estendono nel riempimento. Valori maggiori migliorano l'aderenza del rivestimento al riempimento e consentono una migliore aderenza al rivestimento delle pareti dello strato inferiore. Valori minori consentono di risparmiare sul materiale utilizzato." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "Indica la velocità alla quale vengono stampate tutte le pareti interne. #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Velocità del rivestimento superficie" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Indica la velocità di stampa degli strati superiori." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Indica la velocità alla quale vengono stampati gli strati superiore/inferiore." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "Indica l’accelerazione alla quale vengono stampate tutte le pareti int #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Accelerazione del rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Indica l'accelerazione alla quale vengono stampati gli strati rivestimento superficie superiore." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Indica l’accelerazione alla quale vengono stampati gli strati superiore/inferiore." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Indica il cambio della velocità istantanea massima con cui vengono stam #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Jerk del rivestimento superficie superiore" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Indica la variazione di velocità istantanea massima con cui vengono stampati gli strati rivestimento superficie superiore." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Indica il cambio della velocità istantanea massima con cui vengono stampati gli strati superiore/inferiore." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zig Zag" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Incrociata" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Collega i ZigZag. Questo aumenta la forza della struttura di supporto a #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Rottura del supporto in pezzi di grandi dimensioni" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Salto di alcuni collegamenti per rendere la struttura del supporto più facile da rompere. Questa impostazione è applicabile alla configurazione a zig-zag del riempimento del supporto." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Dimensioni frammento supporto" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Lasciare un collegamento tra le linee del supporto ogni N millimetri per facilitare la rottura del supporto stesso." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Conteggio linee di rottura supporto" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Salto di una ogni N linee di collegamento per rendere la struttura del supporto più facile da rompere." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "È l'entità di offset (estensione dello strato) applicato a tutti i pol #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Spessore dello strato di riempimento di supporto" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Indica lo spessore per strato del materiale di riempimento del supporto. Questo valore deve sempre essere un multiplo dell’altezza dello strato e in caso contrario viene arrotondato." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Fasi di riempimento graduale del supporto" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Indica il numero di volte per dimezzare la densità del riempimento quando si va al di sotto delle superfici superiori. Le aree più vicine alle superfici superiori avranno una densità maggiore, fino alla densità del riempimento." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Altezza fasi di riempimento graduale del supporto" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Indica l’altezza di riempimento del supporto di una data densità prima di passare a metà densità." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"Indica la distanza orizzontale tra lo skirt ed il primo strato della stampa.\n" -"Questa è la distanza minima, più linee di skirt aumenteranno tale distanza." +msgstr "Indica la distanza orizzontale tra lo skirt ed il primo strato della stampa.\nQuesta è la distanza minima, più linee di skirt aumenteranno tale distanza." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Stampa il brim solo sull’esterno del modello. Questo riduce la quantità del brim che si deve rimuovere in seguito, mentre non riduce particolarmente l’adesione al piano." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Scostamento Z strato iniziale" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "L'estrusore viene posizionato ad una distanza dall'altezza normale del primo strato pari al valore indicato. Questo scostamento può essere positivo (più in alto) o negativo (più in basso). Alcuni tipi di filamento aderiscono meglio al piano di stampa se l'estrusore viene leggermente sollevato." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Scostamento Z strati di rastremazione" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Se diverso da zero, lo scostamento Z viene ridotto a 0 entro il numero di strati indicato. Un valore di 0 indica che lo scostamento Z rimane costante per tutti gli strati di stampa." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Se è abilitata la funzione raft, questo valore indica di quanto il raft fuoriesce rispetto al perimetro esterno del modello. Aumentando questo margine si creerà un raft più robusto, utilizzando però più materiale e lasciando meno spazio per la stampa." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Smoothing raft" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Questa impostazione controlla l'entità dell'arrotondamento degli angoli interni sul profilo raft. Gli angoli interni vengono arrotondati a semicerchio con un raggio pari al valore indicato. Questa impostazione elimina inoltre i fori sul profilo raft più piccoli di tale cerchio." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Dopo la commutazione dell’estrusore, pulire il materiale fuoriuscito d #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Volume di scarico torre di innesco" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Quantità di filamento da scaricare durante la pulizia della torre di innesco. Lo scarico è utile per compensare il filamento perso per colatura durante l'inattività dell'ugello." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Leviga i profili con movimento spiraliforme per ridurre la visibilità della giunzione Z (la giunzione Z dovrebbe essere appena visibile sulla stampa, ma rimane visibile nella vista dello strato). Notare che la levigatura tende a rimuovere le bavature fini della superficie." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Estrusione relativa" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Utilizza l'estrusione relativa invece di quella assoluta. L'utilizzo di fasi E relative facilita la post-elaborazione del codice G. Tuttavia, questa impostazione non è supportata da tutte le stampanti e può causare deviazioni molto piccole nella quantità di materiale depositato rispetto alle fasi E assolute. Indipendentemente da questa impostazione, la modalità estrusione sarà sempre impostata su assoluta prima che venga generato uno script in codice G." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "sperimentale!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Ottimizzazione sequenza di stampa pareti" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Ottimizza l'ordine in cui vengono stampate le pareti in modo da ridurre le retrazioni e la distanza percorsa. L'abilitazione di questa funzione porta vantaggi per la maggior parte dei pezzi, ma alcuni potrebbero richiedere un maggior tempo di esecuzione, per cui si consiglia di confrontare i tempi di stampa stimati con e senza ottimizzazione." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "È la velocità a cui eseguire lo spostamento durante il Coasting, rispetto alla velocità del percorso di estrusione. Si consiglia di impostare un valore leggermente al di sotto del 100%, poiché durante il Coasting la pressione nel tubo Bowden scende." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Numero di pareti di rivestimento esterno supplementari" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Sostituisce la parte più esterna della configurazione degli strati superiori/inferiori con una serie di linee concentriche. L’utilizzo di una o due linee migliora le parti superiori (tetti) che iniziano sul materiale di riempimento." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Alterna la direzione di stampa degli strati superiori/inferiori. Normalmente vengono stampati solo diagonalmente. Questa impostazione aggiunge le direzioni solo X e solo Y." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Dimensioni cavità 3D incrociata" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Dimensioni delle cavità negli incroci a quattro vie nella configurazione 3D incrociata alle altezze a cui la configurazione tocca se stessa." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Cavità 3D incrociate alternate" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Si applica solo a cavità a metà degli incroci a quattro vie nella configurazione 3D incrociata e alterna la posizione delle cavità tra le altezze in cui la configurazione tocca se stessa." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Stampa il riempimento di tanto in tanto, in modo che il filamento si avv #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Andatura del riempimento a spaghetti" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Stampa del riempimento a spaghetti in più fasi o estrusione di tutto il filamento del riempimento alla fine della stampa." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Regola la densità del riempimento a spaghetti. Notare che la densità d #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Volume extra riempimento a spaghetti" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Elemento correttivo per regolare il volume totale da estrudere ogni volta durante il riempimento a spaghetti." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Indica la distanza di uno spostamento verso l'alto con estrusione a velocità dimezzata.\n" -"Ciò può garantire una migliore adesione agli strati precedenti, senza eccessivo riscaldamento del materiale su questi strati. Applicabile solo alla funzione Wire Printing." +msgstr "Indica la distanza di uno spostamento verso l'alto con estrusione a velocità dimezzata.\nCiò può garantire una migliore adesione agli strati precedenti, senza eccessivo riscaldamento del materiale su questi strati. Applicabile solo alla funzione Wire Printing." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Indica la distanza tra l'ugello e le linee diagonali verso il basso. Un #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Abilita stiratura" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Ulteriore passaggio sopra la superficie superiore, senza estrusione di materiale. Ha lo scopo di fondere ulteriormente la plastica alla sommità, creando una superficie più uniforme." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Stiramento del solo strato più elevato" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Effettua lo stiramento solo dell'ultimissimo strato della maglia. È possibile quindi risparmiare tempo se gli strati inferiori non richiedono una finitura con superficie liscia." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Configurazione di stiratura" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Configurazione utilizzata per la stiratura della superficie superiore." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrica" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zig Zag" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Spaziatura delle linee di stiratura" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Distanza tra le linee di stiratura." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Flusso di stiratura" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Quantità di materiale, relativo ad una normale linea del rivestimento, da estrudere durante la stiratura. Mantenere l'ugello pieno aiuta a riempire alcune delle fessure presenti sulla superficie superiore, ma una quantità eccessiva comporta un'estrusione eccessiva con conseguente puntinatura sui lati della superficie." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Inserto di stiratura" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Distanza da mantenere dai bordi del modello. La stiratura fino in fondo sino al bordo del reticolo può causare la formazione di un bordo frastagliato nella stampa." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Velocità di stiratura" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Velocità alla quale passare sopra la superficie superiore" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Accelerazione di stiratura" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "L’accelerazione con cui viene effettuata la stiratura." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Jerk stiratura" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Indica la variazione della velocità istantanea massima durante la stiratura." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Matrice di rotazione da applicare al modello quando caricato dal file." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Estrusore pareti" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Treno estrusore utilizzato per stampare le pareti. Si utilizza nell'estrusione multipla." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Indica la configurazione del materiale di riempimento della stampa. Il riempimento a linea e a zig zag cambia direzione su strati alternati, riducendo il costo del materiale. Le configurazioni a griglia, triangolo, cubo, tetraedriche e concentriche sono stampate completamente su ogni strato. Il riempimento delle configurazioni cubiche e tetraedriche cambia ad ogni strato per fornire una distribuzione più uniforme della forza su ciascuna direzione." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Tetraedro" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Prolunga rivestimenti esterni nel riempimento" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Prolunga le aree di rivestimento esterno superiori e/o inferiori delle superfici piatte. Per default, i rivestimenti esterni si interrompono sotto le linee delle pareti circostanti il riempimento, ma questo può generare la comparsa di fori quando la densità del riempimento è bassa. Questa impostazione prolunga i rivestimenti esterni oltre le linee delle pareti in modo che il riempimento sullo strato successivo appoggi sul rivestimento esterno." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Prolunga rivestimenti esterni superiori nel riempimento" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Prolunga le aree di rivestimento esterno superiori (aree con aria al di sopra) in modo che supportino il riempimento sovrastante." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Prolunga rivestimenti esterni inferiori nel riempimento" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Prolunga aree rivestimento esterno inferiori (aree con aria al di sotto) in modo che siano ancorate dagli strati di riempimento sovrastanti e sottostanti." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "La distanza di prolungamento dei rivestimenti esterni nel riempimento. La distanza preimpostata è sufficiente per coprire lo spazio tra le linee di riempimento e chiude i fori che si presentano sul rivestimento esterno nel punto in cui incontra la parete quando la densità del riempimento è bassa. Una distanza inferiore sovente è sufficiente." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Salta alcuni collegamenti a zig-zag" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Salto di alcuni collegamenti a zig-zag per rendere la struttura del supporto più facile da rompere." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Conteggio dei salti dei collegamenti a zig-zag" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Salto di una ogni N linee di collegamento per rendere la struttura del supporto più facile da rompere." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Mostra varianti macchina" @@ -4901,4 +5116,4 @@ msgstr "Matrice di rotazione da applicare al modello quando caricato dal file." #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Sovrapposizione doppia estrusione" +#~ msgstr "Sovrapposizione doppia estrusione" \ No newline at end of file diff --git a/resources/i18n/jp/fdmextruder.def.json.po b/resources/i18n/ja_JP/fdmextruder.def.json.po similarity index 86% rename from resources/i18n/jp/fdmextruder.def.json.po rename to resources/i18n/ja_JP/fdmextruder.def.json.po index 0be1967b48..e1afc955f2 100644 --- a/resources/i18n/jp/fdmextruder.def.json.po +++ b/resources/i18n/ja_JP/fdmextruder.def.json.po @@ -2,22 +2,20 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-26 17:30+0900\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: ja\n" +"PO-Revision-Date: 2017-10-02 17:55+0900\n" +"Last-Translator: Brule\n" +"Language-Team: Brule\n" +"Language: ja_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ja\n" -"Country-Code: JP\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.0.4\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -42,12 +40,12 @@ msgstr "エクストルーダーの列。デュアルノズル印刷時に使用 #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ノズル ID" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "\"AA 0.4\"や\"BB 0.8\"などのノズルID" #: fdmextruder.def.json msgctxt "machine_nozzle_size label" @@ -82,7 +80,7 @@ msgstr "ノズルのY軸のオフセット" #: fdmextruder.def.json msgctxt "machine_extruder_start_code label" msgid "Extruder Start G-Code" -msgstr "" +msgstr "エクストルーダー G-Codeを開始する" #: fdmextruder.def.json msgctxt "machine_extruder_start_code description" @@ -92,7 +90,7 @@ msgstr "エクストルーダーを使う度にGコードを展開します。 #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs label" msgid "Extruder Start Position Absolute" -msgstr "" +msgstr "エクストルーダーのスタート位置の絶対値" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs description" @@ -102,7 +100,7 @@ msgstr "ヘッドの最後の既知位置からではなく、エクストルー #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x label" msgid "Extruder Start Position X" -msgstr "" +msgstr "エクストルーダー スタート位置X" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x description" @@ -112,7 +110,7 @@ msgstr "エクストルーダーのX座標のスタート位置" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y label" msgid "Extruder Start Position Y" -msgstr "" +msgstr "エクストルーダースタート位置Y" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y description" @@ -122,7 +120,7 @@ msgstr "エクストルーダーのY座標のスタート位置" #: fdmextruder.def.json msgctxt "machine_extruder_end_code label" msgid "Extruder End G-Code" -msgstr "" +msgstr "エクストルーダーG-Codeを終了する。" #: fdmextruder.def.json msgctxt "machine_extruder_end_code description" @@ -132,7 +130,7 @@ msgstr "エクストルーダーを使用しないときにGコードを終了 #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs label" msgid "Extruder End Position Absolute" -msgstr "" +msgstr "エクストルーダーのエンドポジションの絶対値" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs description" @@ -142,7 +140,7 @@ msgstr "ヘッドの既存の認識位置よりもエクストルーダーの最 #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x label" msgid "Extruder End Position X" -msgstr "" +msgstr "エクストルーダーエンド位置X" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x description" @@ -152,7 +150,7 @@ msgstr "エクストルーダーを切った際のX座標の最終位置" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y label" msgid "Extruder End Position Y" -msgstr "" +msgstr "エクストルーダーエンド位置Y" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y description" @@ -162,7 +160,7 @@ msgstr "エクストルーダーを切った際のY座標の最終位置" #: fdmextruder.def.json msgctxt "extruder_prime_pos_z label" msgid "Extruder Prime Z Position" -msgstr "" +msgstr "エクストルーダープライムZ位置" #: fdmextruder.def.json msgctxt "extruder_prime_pos_z description" @@ -172,17 +170,17 @@ msgstr "印刷開始時にノズルがポジションを確認するZ座標。" #: fdmextruder.def.json msgctxt "platform_adhesion label" msgid "Build Plate Adhesion" -msgstr "" +msgstr "ビルドプレート密着性" #: fdmextruder.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "密着" +msgstr "接着力" #: fdmextruder.def.json msgctxt "extruder_prime_pos_x label" msgid "Extruder Prime X Position" -msgstr "" +msgstr "エクストルーダープライムX位置" #: fdmextruder.def.json msgctxt "extruder_prime_pos_x description" @@ -192,9 +190,9 @@ msgstr "印刷開始時にノズルがポジションを確認するX座標。" #: fdmextruder.def.json msgctxt "extruder_prime_pos_y label" msgid "Extruder Prime Y Position" -msgstr "" +msgstr "エクストルーダープライムY位置" #: fdmextruder.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "印刷開始時にノズルがポジションを確認するY座標。" +msgstr "印刷開始時にノズルがポジションを確認するY座標。" \ No newline at end of file diff --git a/resources/i18n/jp/fdmprinter.def.json.po b/resources/i18n/ja_JP/fdmprinter.def.json.po similarity index 85% rename from resources/i18n/jp/fdmprinter.def.json.po rename to resources/i18n/ja_JP/fdmprinter.def.json.po index e86a9186b8..aab090bb15 100644 --- a/resources/i18n/jp/fdmprinter.def.json.po +++ b/resources/i18n/ja_JP/fdmprinter.def.json.po @@ -2,28 +2,27 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-26 17:52+0900\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: ja\n" +"PO-Revision-Date: 2017-10-04 14:30+0900\n" +"Last-Translator: Brule\n" +"Language-Team: Brule\n" +"Language: ja_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ja\n" -"Country-Code: JP\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.0.4\n" #: fdmprinter.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "プリンター" +msgstr "" +#msgstr "プリンター" #: fdmprinter.def.json msgctxt "machine_settings description" @@ -33,7 +32,8 @@ msgstr "プリンター詳細設定" #: fdmprinter.def.json msgctxt "machine_name label" msgid "Machine Type" -msgstr "プリンタータイプ" +msgstr "" +#msgstr "プリンタータイプ" #: fdmprinter.def.json msgctxt "machine_name description" @@ -44,6 +44,7 @@ msgstr "3Dプリンターの機種名" msgctxt "machine_show_variants label" msgid "Show Machine Variants" msgstr "" +#msgstr "プリンターのバリエーションを表示する" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -53,7 +54,8 @@ msgstr "このプリンターのバリエーションを表示するかどうか #: fdmprinter.def.json msgctxt "machine_start_gcode label" msgid "Start GCode" -msgstr "GCodeを開始する" +msgstr "" +#msgstr "GCodeを開始する" #: fdmprinter.def.json msgctxt "machine_start_gcode description" @@ -67,7 +69,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_end_gcode label" msgid "End GCode" -msgstr "GCodeを終了する" +msgstr "" +#msgstr "GCodeを終了する" #: fdmprinter.def.json msgctxt "machine_end_gcode description" @@ -81,7 +84,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_guid label" msgid "Material GUID" -msgstr "マテリアルGUID" +msgstr "" +#msgstr "マテリアルGUID" #: fdmprinter.def.json msgctxt "material_guid description" @@ -92,6 +96,7 @@ msgstr "マテリアルのGUID。これは自動的に設定されます。" msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" msgstr "" +#msgstr "ビルドプレート加熱の待機" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -102,6 +107,7 @@ msgstr "開始時にビルドプレートが温度に達するまで待つコマ msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" msgstr "" +#msgstr "ノズル加熱の待機" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -112,6 +118,7 @@ msgstr "開始時にノズルの温度が達するまで待つかどうか。" msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" msgstr "" +#msgstr "マテリアル温度を含む" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -122,6 +129,7 @@ msgstr "GCodeの開始時にノズル温度設定を含めるかどうか。 既 msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" msgstr "" +#msgstr "ビルドプレートの温度を含める" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -132,6 +140,7 @@ msgstr "GCodeの開始時にビルドプレート温度設定を含めるかど msgctxt "machine_width label" msgid "Machine Width" msgstr "" +#msgstr "プリンターの幅" #: fdmprinter.def.json msgctxt "machine_width description" @@ -142,6 +151,7 @@ msgstr "造形可能領域の幅(X方向)。" msgctxt "machine_depth label" msgid "Machine Depth" msgstr "" +#msgstr "プリンターの奥行き" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -152,6 +162,7 @@ msgstr "造形可能領域の幅(Y方向)。" msgctxt "machine_shape label" msgid "Build Plate Shape" msgstr "" +#msgstr "ビルドプレートの形" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -161,17 +172,20 @@ msgstr "造形不可領域を考慮しないビルドプレートの形状。" #: fdmprinter.def.json msgctxt "machine_shape option rectangular" msgid "Rectangular" -msgstr "長方形" +msgstr "" +#msgstr "長方形" #: fdmprinter.def.json msgctxt "machine_shape option elliptic" msgid "Elliptic" -msgstr "楕円形" +msgstr "" +#msgstr "楕円形" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" msgstr "" +#msgstr "プリンターの高さ" #: fdmprinter.def.json msgctxt "machine_height description" @@ -182,6 +196,7 @@ msgstr "造形可能領域の幅(Z方向)。" msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" msgstr "" +#msgstr "加熱したビルドプレート" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -192,6 +207,7 @@ msgstr "プリンターに加熱式ビルドプレートが付属しているか msgctxt "machine_center_is_zero label" msgid "Is Center Origin" msgstr "" +#msgstr "センター原点" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -201,7 +217,8 @@ msgstr "プリンタのゼロポジションのX / Y座標が印刷可能領域 #: fdmprinter.def.json msgctxt "machine_extruder_count label" msgid "Number of Extruders" -msgstr "エクストルーダーの数" +msgstr "" +#msgstr "エクストルーダーの数" #: fdmprinter.def.json msgctxt "machine_extruder_count description" @@ -211,7 +228,8 @@ msgstr "エクストルーダーの数。エクストルーダーの単位は、 #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter label" msgid "Outer nozzle diameter" -msgstr "ノズル外径" +msgstr "" +#msgstr "ノズル外径" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter description" @@ -221,7 +239,8 @@ msgstr "ノズルの外径。" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance label" msgid "Nozzle length" -msgstr "ノズルの長さ" +msgstr "" +#msgstr "ノズルの長さ" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance description" @@ -231,7 +250,8 @@ msgstr "ノズル先端とプリントヘッドの最下部との高さの差。 #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle label" msgid "Nozzle angle" -msgstr "ノズル角度" +msgstr "" +#msgstr "ノズル角度" #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle description" @@ -241,7 +261,8 @@ msgstr "水平面とノズル直上の円錐部分との間の角度。" #: fdmprinter.def.json msgctxt "machine_heat_zone_length label" msgid "Heat zone length" -msgstr "加熱範囲" +msgstr "" +#msgstr "加熱範囲" #: fdmprinter.def.json msgctxt "machine_heat_zone_length description" @@ -251,7 +272,7 @@ msgstr "ノズルからの熱がフィラメントに伝達される距離。" #: fdmprinter.def.json msgctxt "machine_filament_park_distance label" msgid "Filament Park Distance" -msgstr "Filament Park Distance" +msgstr "" #: fdmprinter.def.json msgctxt "machine_filament_park_distance description" @@ -261,7 +282,7 @@ msgstr "エクストルーダーが使用していない時、フィラメント #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled label" msgid "Enable Nozzle Temperature Control" -msgstr "Enable Nozzle Temperature Control" +msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled description" @@ -271,7 +292,7 @@ msgstr "Curaから温度を制御するかどうか。これをオフにして #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed label" msgid "Heat up speed" -msgstr "Heat up speed" +msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed description" @@ -281,7 +302,7 @@ msgstr "ノズルが加熱する速度(℃/ s)は、通常の印刷時温度 #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed label" msgid "Cool down speed" -msgstr "Cool down speed" +msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed description" @@ -291,7 +312,7 @@ msgstr "ノズルが冷却される速度(℃/ s)は、通常の印刷温度 #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window label" msgid "Minimal Time Standby Temperature" -msgstr "Minimal Time Standby Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window description" @@ -301,7 +322,7 @@ msgstr "ノズルが冷却される前にエクストルーダーが静止しな #: fdmprinter.def.json msgctxt "machine_gcode_flavor label" msgid "Gcode flavour" -msgstr "Gcode flavour" +msgstr "" #: fdmprinter.def.json msgctxt "machine_gcode_flavor description" @@ -312,6 +333,7 @@ msgstr "生成するGコードの種類" msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" msgstr "" +#msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" @@ -322,41 +344,48 @@ msgstr "" msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" msgstr "" +#msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" msgid "Ultimaker 2" -msgstr "Ultimaker 2" +msgstr "" +#msgstr "Ultimaker 2" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Griffin" msgid "Griffin" -msgstr "Griffin" +msgstr "" +#msgstr "Griffin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Makerbot" msgid "Makerbot" -msgstr "Makerbot" +msgstr "" +#msgstr "Makerbot" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option BFB" msgid "Bits from Bytes" -msgstr "Bits from Bytes" +msgstr "" +#msgstr "Bits from Bytes" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option MACH3" msgid "Mach3" -msgstr "Mach3" +msgstr "" +#msgstr "Mach3" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Repetier" msgid "Repetier" -msgstr "Repetier" +msgstr "" +#msgstr "Repetier" #: fdmprinter.def.json msgctxt "machine_disallowed_areas label" msgid "Disallowed areas" -msgstr "Disallowed areas" +msgstr "" #: fdmprinter.def.json msgctxt "machine_disallowed_areas description" @@ -366,7 +395,7 @@ msgstr "プリントヘッドの領域を持つポリゴンのリストは入力 #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas label" msgid "Nozzle Disallowed Areas" -msgstr "Nozzle Disallowed Areas" +msgstr "" #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas description" @@ -376,7 +405,7 @@ msgstr "ノズルが入ることができない領域を持つポリゴンのリ #: fdmprinter.def.json msgctxt "machine_head_polygon label" msgid "Machine head polygon" -msgstr "Machine head polygon" +msgstr "" #: fdmprinter.def.json msgctxt "machine_head_polygon description" @@ -386,7 +415,7 @@ msgstr "プリントヘッドの2Dシルエット(ファンキャップは除 #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon label" msgid "Machine head & Fan polygon" -msgstr "Machine head & Fan polygon" +msgstr "" #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon description" @@ -396,7 +425,7 @@ msgstr "プリントヘッドの2Dシルエット(ファンキャップが含 #: fdmprinter.def.json msgctxt "gantry_height label" msgid "Gantry height" -msgstr "Gantry height" +msgstr "" #: fdmprinter.def.json msgctxt "gantry_height description" @@ -407,16 +436,17 @@ msgstr "ノズルの先端とガントリーシステムの高さの差(X軸 msgctxt "machine_nozzle_id label" msgid "Nozzle ID" msgstr "" +#msgstr "ノズル ID" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "\"AA 0.4\"や\"BB 0.8\"などのノズルID" #: fdmprinter.def.json msgctxt "machine_nozzle_size label" msgid "Nozzle Diameter" -msgstr "Nozzle Diameter" +msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_size description" @@ -426,7 +456,7 @@ msgstr "ノズルの内径。標準以外のノズルを使用する場合は、 #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords label" msgid "Offset With Extruder" -msgstr "Offset With Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords description" @@ -436,7 +466,7 @@ msgstr "エクストルーダーのオフセットを座標システムに適用 #: fdmprinter.def.json msgctxt "extruder_prime_pos_z label" msgid "Extruder Prime Z Position" -msgstr "Extruder Prime Z Position" +msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_z description" @@ -446,7 +476,7 @@ msgstr "印刷開始時にノズルがポジションを確認するZ座標。" #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs label" msgid "Absolute Extruder Prime Position" -msgstr "Absolute Extruder Prime Position" +msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs description" @@ -456,7 +486,7 @@ msgstr "最後のヘッドの既知位置からではなく、エクストルー #: fdmprinter.def.json msgctxt "machine_max_feedrate_x label" msgid "Maximum Speed X" -msgstr "Maximum Speed X" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_x description" @@ -466,7 +496,7 @@ msgstr "X方向のモーターの最大速度。" #: fdmprinter.def.json msgctxt "machine_max_feedrate_y label" msgid "Maximum Speed Y" -msgstr "Maximum Speed Y" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_y description" @@ -476,7 +506,7 @@ msgstr "Y方向のモーターの最大速度。" #: fdmprinter.def.json msgctxt "machine_max_feedrate_z label" msgid "Maximum Speed Z" -msgstr "Maximum Speed Z" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_z description" @@ -486,7 +516,7 @@ msgstr "Z方向のモーターの最大速度。" #: fdmprinter.def.json msgctxt "machine_max_feedrate_e label" msgid "Maximum Feedrate" -msgstr "Maximum Feedrate" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_e description" @@ -496,7 +526,7 @@ msgstr "フィラメントの最大速度。" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x label" msgid "Maximum Acceleration X" -msgstr "Maximum Acceleration X" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x description" @@ -506,7 +536,7 @@ msgstr "X方向のモーターの最大速度。" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" msgid "Maximum Acceleration Y" -msgstr "Maximum Acceleration Y" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y description" @@ -516,7 +546,7 @@ msgstr "Y方向のモーターの最大加速度。" #: fdmprinter.def.json msgctxt "machine_max_acceleration_z label" msgid "Maximum Acceleration Z" -msgstr "Maximum Acceleration Z" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_z description" @@ -526,7 +556,7 @@ msgstr "Z方向のモーターの最大加速度。" #: fdmprinter.def.json msgctxt "machine_max_acceleration_e label" msgid "Maximum Filament Acceleration" -msgstr "Maximum Filament Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_e description" @@ -536,7 +566,7 @@ msgstr "フィラメントのモーターの最大加速度。" #: fdmprinter.def.json msgctxt "machine_acceleration label" msgid "Default Acceleration" -msgstr "Default Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "machine_acceleration description" @@ -546,7 +576,7 @@ msgstr "プリントヘッド移動のデフォルトの加速度。" #: fdmprinter.def.json msgctxt "machine_max_jerk_xy label" msgid "Default X-Y Jerk" -msgstr "Default X-Y Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_xy description" @@ -556,7 +586,7 @@ msgstr "水平面内での移動のデフォルトジャーク。" #: fdmprinter.def.json msgctxt "machine_max_jerk_z label" msgid "Default Z Jerk" -msgstr "Default Z Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_z description" @@ -566,7 +596,7 @@ msgstr "Z方向のモーターのデフォルトジャーク。" #: fdmprinter.def.json msgctxt "machine_max_jerk_e label" msgid "Default Filament Jerk" -msgstr "Default Filament Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_e description" @@ -576,7 +606,7 @@ msgstr "フィラメントのモーターのデフォルトジャーク。" #: fdmprinter.def.json msgctxt "machine_minimum_feedrate label" msgid "Minimum Feedrate" -msgstr "Minimum Feedrate" +msgstr "" #: fdmprinter.def.json msgctxt "machine_minimum_feedrate description" @@ -586,7 +616,8 @@ msgstr "プリントヘッドの最小移動速度。" #: fdmprinter.def.json msgctxt "resolution label" msgid "Quality" -msgstr "Quality" +msgstr "" +#msgstr "品質" #: fdmprinter.def.json msgctxt "resolution description" @@ -596,7 +627,8 @@ msgstr "プリントの解像度に影響を与えるすべての設定。これ #: fdmprinter.def.json msgctxt "layer_height label" msgid "Layer Height" -msgstr "Layer Height" +msgstr "" +#msgstr "積層ピッチ" #: fdmprinter.def.json msgctxt "layer_height description" @@ -606,7 +638,7 @@ msgstr "各レイヤーの高さ(mm)。値を大きくすると早く印刷 #: fdmprinter.def.json msgctxt "layer_height_0 label" msgid "Initial Layer Height" -msgstr "Initial Layer Height" +msgstr "" #: fdmprinter.def.json msgctxt "layer_height_0 description" @@ -616,7 +648,7 @@ msgstr "初期レイヤーの高さ(mm)。厚い初期層はビルドプレ #: fdmprinter.def.json msgctxt "line_width label" msgid "Line Width" -msgstr "Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "line_width description" @@ -626,7 +658,7 @@ msgstr "1ラインの幅。一般に、各ラインの幅は、ノズルの幅 #: fdmprinter.def.json msgctxt "wall_line_width label" msgid "Wall Line Width" -msgstr "Wall Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width description" @@ -636,7 +668,7 @@ msgstr "ウォールラインの幅。" #: fdmprinter.def.json msgctxt "wall_line_width_0 label" msgid "Outer Wall Line Width" -msgstr "Outer Wall Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_0 description" @@ -646,7 +678,7 @@ msgstr "最も外側のウォールラインの幅。この値を下げると、 #: fdmprinter.def.json msgctxt "wall_line_width_x label" msgid "Inner Wall(s) Line Width" -msgstr "Inner Wall(s) Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_x description" @@ -657,16 +689,17 @@ msgstr "一番外側のウォールラインを除くすべてのウォールラ msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" msgstr "" +#msgstr "上表面スキンの線幅" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "プリントの上部の 線の幅。" #: fdmprinter.def.json msgctxt "skin_line_width label" msgid "Top/Bottom Line Width" -msgstr "Top/Bottom Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "skin_line_width description" @@ -676,7 +709,7 @@ msgstr "上辺/底辺線のライン幅。" #: fdmprinter.def.json msgctxt "infill_line_width label" msgid "Infill Line Width" -msgstr "Infill Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "infill_line_width description" @@ -686,7 +719,7 @@ msgstr "インフィル線の幅。" #: fdmprinter.def.json msgctxt "skirt_brim_line_width label" msgid "Skirt/Brim Line Width" -msgstr "Skirt/Brim Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_line_width description" @@ -696,7 +729,7 @@ msgstr "単一のスカートまたはブリムラインの幅。" #: fdmprinter.def.json msgctxt "support_line_width label" msgid "Support Line Width" -msgstr "Support Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "support_line_width description" @@ -706,7 +739,7 @@ msgstr "単一のサポート構造のライン幅。" #: fdmprinter.def.json msgctxt "support_interface_line_width label" msgid "Support Interface Line Width" -msgstr "Support Interface Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_line_width description" @@ -717,26 +750,28 @@ msgstr "サポートのルーフ、フロアのライン幅" msgctxt "support_roof_line_width label" msgid "Support Roof Line Width" msgstr "" +#msgstr "サポートルーフライン幅" #: fdmprinter.def.json msgctxt "support_roof_line_width description" msgid "Width of a single support roof line." -msgstr "サポートルーフのライン幅。" +msgstr "サポートルーフのライン一幅。" #: fdmprinter.def.json msgctxt "support_bottom_line_width label" msgid "Support Floor Line Width" msgstr "" +#msgstr "サポートフロアライン幅" #: fdmprinter.def.json msgctxt "support_bottom_line_width description" msgid "Width of a single support floor line." -msgstr "サポートのフロアのラインの幅。" +msgstr "サポートのフロアのラインの一幅。" #: fdmprinter.def.json msgctxt "prime_tower_line_width label" msgid "Prime Tower Line Width" -msgstr "Prime Tower Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_line_width description" @@ -747,66 +782,61 @@ msgstr "単一のプライムタワーラインの幅。" msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" msgstr "" +#msgstr "初期レイヤー線幅" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "最初のレイヤーに線幅の乗数です。この値を増やすと、ベッドの接着性が向上します。" #: fdmprinter.def.json msgctxt "shell label" msgid "Shell" -msgstr "Shell" +msgstr "" +#msgstr "外郭" #: fdmprinter.def.json msgctxt "shell description" msgid "Shell" msgstr "外郭" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" msgstr "" +#msgstr "外側印刷用エクストルーダー" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "外壁印刷用のエクストルーダー。デュアルノズル印刷時に使用。" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" msgstr "" +#msgstr "内側用エクストルーダー" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "内壁印刷用のエクストルーダー。デュアルノズル印刷時に使用。" #: fdmprinter.def.json msgctxt "wall_thickness label" msgid "Wall Thickness" -msgstr "Wall Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "壁の厚さ。この値をラインの幅で割ることで壁の数が決まります" #: fdmprinter.def.json msgctxt "wall_line_count label" msgid "Wall Line Count" -msgstr "Wall Line Count" +msgstr "" +#msgstr "壁の線本数" #: fdmprinter.def.json msgctxt "wall_line_count description" @@ -816,7 +846,8 @@ msgstr "ウォールの数。厚さから計算された場合、この値は整 #: fdmprinter.def.json msgctxt "wall_0_wipe_dist label" msgid "Outer Wall Wipe Distance" -msgstr "Outer Wall Wipe Distance" +msgstr "" +#msgstr "外壁のワイピング距離" #: fdmprinter.def.json msgctxt "wall_0_wipe_dist description" @@ -827,71 +858,79 @@ msgstr "外壁の後に挿入された移動の距離はZシームをよりよ msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" msgstr "" +#msgstr "上層表面スキンエクストルーダー" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "上部の表面印刷用のエクストルーダー。デュアルノズル印刷時に使用" #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" msgstr "" +#msgstr "上の表皮層" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "上部表面のレイヤー数。通常一層で綺麗に出来上がります" #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" msgstr "" +#msgstr "上層表面スキンパターン" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "上層のパターン" #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" msgstr "" +#msgstr "上層表面スキンラインの方向" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "トップ表面層に縦かジグザグパターンを利用する時に使用する整数の行方向のリスト。リスト内から順番に使われていき、リストの最後に達するとまた最初の設定値に戻ります。リストアイテムはカンマで区切られ、全体はカッコで括られています。デフォルトでは何も入っておらず、設定角度は (45 度と 135 度)になっています。" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" msgstr "" +#msgstr "トップ/ボトムエクストルーダー" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "上部と下部の表面を印刷する時に使われるエクストルーダー。デュアルノズル印刷時に使用" #: fdmprinter.def.json msgctxt "top_bottom_thickness label" msgid "Top/Bottom Thickness" -msgstr "Top/Bottom Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_thickness description" @@ -901,7 +940,7 @@ msgstr "プリント時の最上面、最底面の厚み。これを積層ピッ #: fdmprinter.def.json msgctxt "top_thickness label" msgid "Top Thickness" -msgstr "Top Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "top_thickness description" @@ -911,7 +950,7 @@ msgstr "プリント時の最上面の厚み。これを積層ピッチで割っ #: fdmprinter.def.json msgctxt "top_layers label" msgid "Top Layers" -msgstr "Top Layers" +msgstr "" #: fdmprinter.def.json msgctxt "top_layers description" @@ -921,7 +960,7 @@ msgstr "最上面のレイヤー数。トップの厚さを計算する場合、 #: fdmprinter.def.json msgctxt "bottom_thickness label" msgid "Bottom Thickness" -msgstr "Bottom Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "bottom_thickness description" @@ -931,7 +970,7 @@ msgstr "プリント時の最底面の厚み。これを積層ピッチで割っ #: fdmprinter.def.json msgctxt "bottom_layers label" msgid "Bottom Layers" -msgstr "Bottom Layers" +msgstr "" #: fdmprinter.def.json msgctxt "bottom_layers description" @@ -941,7 +980,7 @@ msgstr "最底面のレイヤー数。下の厚さで計算すると、この値 #: fdmprinter.def.json msgctxt "top_bottom_pattern label" msgid "Top/Bottom Pattern" -msgstr "Top/Bottom Pattern" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern description" @@ -951,22 +990,23 @@ msgstr "上層/底層のパターン。" #: fdmprinter.def.json msgctxt "top_bottom_pattern option lines" msgid "Lines" -msgstr "Lines" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern option concentric" msgid "Concentric" -msgstr "Concentric" +msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "top_bottom_pattern option zigzag" msgid "Zig Zag" -msgstr "Zig Zag" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 label" msgid "Bottom Pattern Initial Layer" -msgstr "Bottom Pattern Initial Layer" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 description" @@ -976,22 +1016,22 @@ msgstr "第1層のプリントの底部のパターン。" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 option lines" msgid "Lines" -msgstr "Lines" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 option concentric" msgid "Concentric" -msgstr "Concentric" +msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 option zigzag" msgid "Zig Zag" -msgstr "Zig Zag" +msgstr "" #: fdmprinter.def.json msgctxt "skin_angles label" msgid "Top/Bottom Line Directions" -msgstr "Top/Bottom Line Directions" +msgstr "" #: fdmprinter.def.json msgctxt "skin_angles description" @@ -1001,7 +1041,7 @@ msgstr "上/下のレイヤーが線またはジグザグパターンを使う #: fdmprinter.def.json msgctxt "wall_0_inset label" msgid "Outer Wall Inset" -msgstr "Outer Wall Inset" +msgstr "" #: fdmprinter.def.json msgctxt "wall_0_inset description" @@ -1011,7 +1051,7 @@ msgstr "外壁の経路にはめ込む。外壁がノズルよりも小さく、 #: fdmprinter.def.json msgctxt "outer_inset_first label" msgid "Outer Before Inner Walls" -msgstr "Outer Before Inner Walls" +msgstr "" #: fdmprinter.def.json msgctxt "outer_inset_first description" @@ -1021,7 +1061,7 @@ msgstr "有効にすると、壁は外側から内側に順番に印刷します #: fdmprinter.def.json msgctxt "alternate_extra_perimeter label" msgid "Alternate Extra Wall" -msgstr "Alternate Extra Wall" +msgstr "" #: fdmprinter.def.json msgctxt "alternate_extra_perimeter description" @@ -1031,7 +1071,7 @@ msgstr "すべてのレイヤーごとに予備の壁を印刷します。この #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled label" msgid "Compensate Wall Overlaps" -msgstr "Compensate Wall Overlaps" +msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled description" @@ -1041,7 +1081,7 @@ msgstr "すでに壁が設置されている部品の壁の流れを補正しま #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled label" msgid "Compensate Outer Wall Overlaps" -msgstr "Compensate Outer Wall Overlaps" +msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled description" @@ -1051,7 +1091,7 @@ msgstr "すでに壁が設置されている場所にプリントされている #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled label" msgid "Compensate Inner Wall Overlaps" -msgstr "Compensate Inner Wall Overlaps" +msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled description" @@ -1061,7 +1101,7 @@ msgstr "すでに壁が設置されている場所にプリントされている #: fdmprinter.def.json msgctxt "fill_perimeter_gaps label" msgid "Fill Gaps Between Walls" -msgstr "Fill Gaps Between Walls" +msgstr "" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps description" @@ -1071,27 +1111,28 @@ msgstr "壁が入らない壁の隙間を埋める。" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps option nowhere" msgid "Nowhere" -msgstr "Nowhere" +msgstr "" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps option everywhere" msgid "Everywhere" -msgstr "Everywhere" +msgstr "" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" msgstr "" +#msgstr "薄い壁をプリントする" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "ノズルサイズよりも細い壁を作ります" #: fdmprinter.def.json msgctxt "xy_offset label" msgid "Horizontal Expansion" -msgstr "Horizontal Expansion" +msgstr "" #: fdmprinter.def.json msgctxt "xy_offset description" @@ -1102,16 +1143,17 @@ msgstr "各レイヤーのすべてのポリゴンに適用されるオフセッ msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" msgstr "" +#msgstr "初期レイヤー水平方向への展開" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "最初のレイヤーのポリゴンに適用されるオフセットの値。マイナスの値はelephant's footと呼ばれる第一層が潰れるを現象を軽減させます" #: fdmprinter.def.json msgctxt "z_seam_type label" msgid "Z Seam Alignment" -msgstr "Z Seam Alignment" +msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type description" @@ -1121,22 +1163,28 @@ msgstr "レイヤーの経路始点。連続するレイヤー経路が同じポ #: fdmprinter.def.json msgctxt "z_seam_type option back" msgid "User Specified" -msgstr "User Specified" +msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type option shortest" msgid "Shortest" -msgstr "Shortest" +msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type option random" msgid "Random" -msgstr "Random" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "" +#msgstr "最も鋭利な角" #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" -msgstr "Z Seam X" +msgstr "" #: fdmprinter.def.json msgctxt "z_seam_x description" @@ -1148,37 +1196,86 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_y label" msgid "Z Seam Y" -msgstr "Z Seam Y" +msgstr "" #: fdmprinter.def.json msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "レイヤー内の各パーツの印刷を開始する場所の近くのY座標。" +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "" +#msgstr "薄層のプレファレンス" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "モデル輪郭のコーナーがシーム(縫い目)の位置に影響するかどうかを制御します。 Noneはコーナーがシームの位置に影響を与えないことを意味します。 Seam(縫い目)を非表示にすると、内側のコーナーでシームが発生しやすくなります。 Seamを表示すると、外側の角にシームが発生する可能性が高くなります。 シームを隠す、または表示するを選択することにより、内側または外側コーナーでシームを発生させる可能性が高くなります。" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "" +#msgstr "なし" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "" +#msgstr "シームを非表示にする" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "" +#msgstr "シームを表示する" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "" +#msgstr "シームを非表示または表示する" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" msgstr "" +#msgstr "Zシーム関連" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "有効時は、Zシームは各パーツの真ん中に設定されます。無効時はプラットフォームのサイズによって設定されます。" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" msgid "Ignore Small Z Gaps" -msgstr "Ignore Small Z Gaps" +msgstr "" +#msgstr "小さなZギャップを無視する" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "モデルに垂直方向のギャップが小さくある場合、これらの狭いスペースにおいて上部および下部スキンを生成するために、約5%の計算時間が追加されます。そのような場合は、設定を無効にしてください。" +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "" +#msgstr "余分な肌壁の本数" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "上部/下部パターンの最も外側の部分を同心円の線で置き換えます。 1つまたは2つの線を使用すると、トップ部分の造形が改善されます。" + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" -msgstr "Infill" +msgstr "" +#msgstr "インフィル" #: fdmprinter.def.json msgctxt "infill description" @@ -1189,16 +1286,17 @@ msgstr "インフィル" msgctxt "infill_extruder_nr label" msgid "Infill Extruder" msgstr "" +#msgstr "インフィルエクストルーダー" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "インフィル造形時に使われるExtruder。デュアルノズルの場合に利用します" #: fdmprinter.def.json msgctxt "infill_sparse_density label" msgid "Infill Density" -msgstr "Infill Density" +msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_density description" @@ -1208,7 +1306,7 @@ msgstr "プリントのインフィルの密度を調整します。" #: fdmprinter.def.json msgctxt "infill_line_distance label" msgid "Infill Line Distance" -msgstr "Infill Line Distance" +msgstr "" #: fdmprinter.def.json msgctxt "infill_line_distance description" @@ -1218,62 +1316,94 @@ msgstr "造形されたインフィルラインの距離。この設定は、イ #: fdmprinter.def.json msgctxt "infill_pattern label" msgid "Infill Pattern" -msgstr "Infill Pattern" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "印刷物のインフィルのパターン。ラインとジグザグのインフィルは交互のレイヤー方向をずらし、材料費を削減します。グリッド、三角形、キュービック、四面体、同心円のパターンは、各レイヤーに完全に印刷されます。立方体および四面体のインフィルは各層ごとに変化し、各方向に沿ってより均等な強度分布を提供する。" +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "印刷物のインフィルのパターン。線とジグザグのインフィルはレイヤーごとに交互に方向を変え、材料費を削減します。グリッド、三角形、キュービック、オクテット、クォーターキュービック、同心円のパターンは、すべてのレイヤーにて完全に印刷されます。キュービック、クォーターキュービック、オクテットのインフィルは各レイヤーごとに変化し、各方向の強度が均等になるように分布します。" #: fdmprinter.def.json msgctxt "infill_pattern option grid" msgid "Grid" -msgstr "Grid" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option lines" msgid "Lines" -msgstr "Lines" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option triangles" msgid "Triangles" -msgstr "Triangles" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option cubic" msgid "Cubic" -msgstr "Cubic" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option cubicsubdiv" msgid "Cubic Subdivision" -msgstr "Cubic Subdivision" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tetrahedral" +msgid "Octet" +msgstr "" +#msgstr "オクテット" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "" +#msgstr "クォーターキュービック" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" msgid "Concentric" -msgstr "Concentric" +msgstr "" +#msgstr "同心円" #: fdmprinter.def.json msgctxt "infill_pattern option concentric_3d" msgid "Concentric 3D" -msgstr "Concentric 3D" +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option zigzag" msgid "Zig Zag" -msgstr "Zig Zag" +msgstr "" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "" +#msgstr "クロス" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "" +#msgstr "クロス3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "" +#msgstr "インフィルの線をつなげる" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "内壁の形状に沿った線を使用して、インフィルのパターンが内壁と接する端を接続します。この設定を有効にすると、インフィルを壁面に密着させることができ、充填材が垂直面の品質に与える影響を低減できます。この設定を無効にすると、使用される材料の量が減ります。" #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" -msgstr "Infill Line Directions" +msgstr "" +#msgstr "インフィルラインの方向" #: fdmprinter.def.json msgctxt "infill_angles description" @@ -1283,7 +1413,7 @@ msgstr "使用する整数線の方向のリスト。リストの要素は、レ #: fdmprinter.def.json msgctxt "sub_div_rad_add label" msgid "Cubic Subdivision Shell" -msgstr "Cubic Subdivision Shell" +msgstr "" #: fdmprinter.def.json msgctxt "sub_div_rad_add description" @@ -1293,7 +1423,8 @@ msgstr "この立方体を細分するかどうかを決定するために、各 #: fdmprinter.def.json msgctxt "infill_overlap label" msgid "Infill Overlap Percentage" -msgstr "Infill Overlap Percentage" +msgstr "" +#msgstr "インフィルのオーバーラップ率" #: fdmprinter.def.json msgctxt "infill_overlap description" @@ -1303,7 +1434,8 @@ msgstr "インフィルと壁が交差する量、わずかな交差によって #: fdmprinter.def.json msgctxt "infill_overlap_mm label" msgid "Infill Overlap" -msgstr "Infill Overlap" +msgstr "" +#msgstr "インフィルのオーバーラップ" #: fdmprinter.def.json msgctxt "infill_overlap_mm description" @@ -1313,17 +1445,18 @@ msgstr "インフィルと壁が交差する量、わずかな交差によって #: fdmprinter.def.json msgctxt "skin_overlap label" msgid "Skin Overlap Percentage" -msgstr "Skin Overlap Percentage" +msgstr "" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "表面と壁の交わる量。ラインの幅の%で設定。少しの接触でしっかりと繋がります。表面と内壁の交わる量の平均値になります。" #: fdmprinter.def.json msgctxt "skin_overlap_mm label" msgid "Skin Overlap" -msgstr "Skin Overlap" +msgstr "" +#msgstr "スキンオーバーラップ" #: fdmprinter.def.json msgctxt "skin_overlap_mm description" @@ -1333,7 +1466,8 @@ msgstr "スキンと壁の間の交差した量 わずかなオーバーラッ #: fdmprinter.def.json msgctxt "infill_wipe_dist label" msgid "Infill Wipe Distance" -msgstr "Infill Wipe Distance" +msgstr "" +#msgstr "インフィルWipe距離" #: fdmprinter.def.json msgctxt "infill_wipe_dist description" @@ -1343,7 +1477,7 @@ msgstr "インフィルラインごとに挿入された移動距離は壁のイ #: fdmprinter.def.json msgctxt "infill_sparse_thickness label" msgid "Infill Layer Thickness" -msgstr "Infill Layer Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_thickness description" @@ -1353,7 +1487,7 @@ msgstr "インフィルマテリアルの層ごとの厚さ。この値は常に #: fdmprinter.def.json msgctxt "gradual_infill_steps label" msgid "Gradual Infill Steps" -msgstr "Gradual Infill Steps" +msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_steps description" @@ -1363,17 +1497,17 @@ msgstr "天井面の表面に近づく際にインフィル密度が半減する #: fdmprinter.def.json msgctxt "gradual_infill_step_height label" msgid "Gradual Infill Step Height" -msgstr "Gradual Infill Step Height" +msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_step_height description" msgid "The height of infill of a given density before switching to half the density." -msgstr "密度が半分に切り替える前の所定のインフィルの高さ。" +msgstr "密度が半分に切り替わる前の所定のインフィルの高さ。" #: fdmprinter.def.json msgctxt "infill_before_walls label" msgid "Infill Before Walls" -msgstr "Infill Before Walls" +msgstr "" #: fdmprinter.def.json msgctxt "infill_before_walls description" @@ -1385,7 +1519,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "min_infill_area label" msgid "Minimum Infill Area" -msgstr "Minimum Infill Area" +msgstr "" #: fdmprinter.def.json msgctxt "min_infill_area description" @@ -1393,49 +1527,74 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "これより小さいインフィルの領域を生成しないでください (代わりにスキンを使用してください)。" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Expand Skins Into Infill" - -#: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "平らな面の上部または底部のスキン部の及びその領域を展開します。既定では、スキンインフィルの周りの壁の線で停止しますが、これはインフィル密度が低いときに現れる穴につながることがあります。この設定は、次の層の面材が皮膚にかかっているので、壁の線を超えてスキンを拡張します。" - -#: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" msgstr "" +#msgstr "スキン除去幅" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "インフィルをトップの面部分 (空気に触れる領域) を広げることで、上のインフィルを支えます。" +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "取り除くスキンエリアの最大幅。この値より小さいすべてのスキンエリアは消えます。これは、モデルの傾斜表面の上部/下部スキンに費やした時間のや材料の量を制限することができます。" #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" msgstr "" +#msgstr "トップスキン除去幅" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "下面(下に空気がある領域)を拡大して、上と下のインフィルによって支えるようにします。" +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "取り除くスキンエリアの最大幅。この値より小さいすべてのスキンエリアは消えます。これは、モデルの傾斜表面の上部/下部スキンに費やした時間のや材料の量を制限することができます。" + +#: fdmprinter.def.json +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "" +#msgstr "ボトムのスキン除去幅" + +#: fdmprinter.def.json +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "取り除くスキンエリアの最大幅。この値より小さいすべてのスキンエリアは消えます。これは、モデルの傾斜表面の上部/下部スキンに費やした時間のや材料の量を制限することができます。" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" msgid "Skin Expand Distance" -msgstr "Skin Expand Distance" +msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "スキンがインフィルに展開される距離。デフォルトの距離は、インフィルの密度が低いときにスキンに現れる穴とインフィルの行間とギャップを埋めるのにに十分です。大抵の場合、距離は小さくても問題ありません。" +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "スキンがインフィルまで到達する距離です。高い数値の場合、スキンはインフィルのパターンに隣接しやすく、近接する壁のレイヤーもスキンに密着しやすくなります。低値の場合、材料の使用量を節約します。" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "" +#msgstr "トップのスキンの展開距離" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "スキンがインフィルまで到達する距離です。高い数値の場合、スキンはインフィルのパターンに隣接しやすく、近接する壁のレイヤーもスキンに密着しやすくなります。低値の場合、材料の使用量を節約します。" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "" +#msgstr "ボトムのスキンの展開距離" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "スキンがインフィルまで到達する距離です。高い数値の場合、スキンはインフィルのパターンに隣接しやすく、近接する壁のレイヤーもスキンに密着しやすくなります。低値の場合、材料の使用量を節約します。" #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" msgid "Maximum Skin Angle for Expansion" -msgstr "Maximum Skin Angle for Expansion" +msgstr "" #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion description" @@ -1445,7 +1604,7 @@ msgstr "この設定より大きい角を持つオブジェクトの上部また #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion label" msgid "Minimum Skin Width for Expansion" -msgstr "Minimum Skin Width for Expansion" +msgstr "" #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion description" @@ -1455,7 +1614,7 @@ msgstr "これより狭いスキン領域は展開されません。モデル表 #: fdmprinter.def.json msgctxt "material label" msgid "Material" -msgstr "Material" +msgstr "" #: fdmprinter.def.json msgctxt "material description" @@ -1465,7 +1624,7 @@ msgstr "マテリアル" #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature label" msgid "Auto Temperature" -msgstr "Auto Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature description" @@ -1475,7 +1634,7 @@ msgstr "その画層の平均流速で自動的にレイヤーごとに温度を #: fdmprinter.def.json msgctxt "default_material_print_temperature label" msgid "Default Printing Temperature" -msgstr "Default Printing Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" @@ -1485,7 +1644,7 @@ msgstr "印刷中のデフォルトの温度。これはマテリアルの基本 #: fdmprinter.def.json msgctxt "material_print_temperature label" msgid "Printing Temperature" -msgstr "Printing Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature description" @@ -1495,7 +1654,7 @@ msgstr "印刷中の温度。" #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 label" msgid "Printing Temperature Initial Layer" -msgstr "Printing Temperature Initial Layer" +msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 description" @@ -1505,7 +1664,7 @@ msgstr "最初のレイヤーを印刷する温度。初期レイヤーのみ特 #: fdmprinter.def.json msgctxt "material_initial_print_temperature label" msgid "Initial Printing Temperature" -msgstr "Initial Printing Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_initial_print_temperature description" @@ -1515,7 +1674,7 @@ msgstr "加熱中、印刷を開始することができる最低の温度。" #: fdmprinter.def.json msgctxt "material_final_print_temperature label" msgid "Final Printing Temperature" -msgstr "Final Printing Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_final_print_temperature description" @@ -1525,7 +1684,7 @@ msgstr "印刷終了直前に冷却を開始する温度。" #: fdmprinter.def.json msgctxt "material_flow_temp_graph label" msgid "Flow Temperature Graph" -msgstr "Flow Temperature Graph" +msgstr "" #: fdmprinter.def.json msgctxt "material_flow_temp_graph description" @@ -1535,7 +1694,7 @@ msgstr "マテリアルフロー(毎秒 3mm) と温度 (° c) をリンクしま #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed label" msgid "Extrusion Cool Down Speed Modifier" -msgstr "Extrusion Cool Down Speed Modifier" +msgstr "" #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed description" @@ -1545,7 +1704,7 @@ msgstr "印刷中にノズルが冷える際の速度。同じ値が、加熱す #: fdmprinter.def.json msgctxt "material_bed_temperature label" msgid "Build Plate Temperature" -msgstr "Build Plate Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature description" @@ -1555,7 +1714,7 @@ msgstr "加熱式ビルドプレート温度。これが 0 の場合、ベッド #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 label" msgid "Build Plate Temperature Initial Layer" -msgstr "Build Plate Temperature Initial Layer" +msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 description" @@ -1565,7 +1724,7 @@ msgstr "最初のレイヤー印刷時のビルドプレートの温度。" #: fdmprinter.def.json msgctxt "material_diameter label" msgid "Diameter" -msgstr "Diameter" +msgstr "" #: fdmprinter.def.json msgctxt "material_diameter description" @@ -1575,7 +1734,7 @@ msgstr "使用するフィラメントの太さの調整 この値を使用す #: fdmprinter.def.json msgctxt "material_flow label" msgid "Flow" -msgstr "Flow" +msgstr "" #: fdmprinter.def.json msgctxt "material_flow description" @@ -1585,7 +1744,7 @@ msgstr "流れの補修: 押出されるマテリアルの量は、この値か #: fdmprinter.def.json msgctxt "retraction_enable label" msgid "Enable Retraction" -msgstr "Enable Retraction" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_enable description" @@ -1595,7 +1754,7 @@ msgstr "ノズルが印刷しないで良い領域を移動する際にフィラ #: fdmprinter.def.json msgctxt "retract_at_layer_change label" msgid "Retract at Layer Change" -msgstr "Retract at Layer Change" +msgstr "" #: fdmprinter.def.json msgctxt "retract_at_layer_change description" @@ -1605,7 +1764,7 @@ msgstr "ノズルは次の層に移動するときフィラメントを引き戻 #: fdmprinter.def.json msgctxt "retraction_amount label" msgid "Retraction Distance" -msgstr "Retraction Distance" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_amount description" @@ -1615,7 +1774,7 @@ msgstr "引き戻されるマテリアルの長さ" #: fdmprinter.def.json msgctxt "retraction_speed label" msgid "Retraction Speed" -msgstr "Retraction Speed" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -1626,7 +1785,7 @@ msgstr "フィラメントが引き戻される時のスピード" #: fdmprinter.def.json msgctxt "retraction_retract_speed label" msgid "Retraction Retract Speed" -msgstr "Retraction Retract Speed" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -1637,7 +1796,7 @@ msgstr "フィラメントが引き戻される時のスピード" #: fdmprinter.def.json msgctxt "retraction_prime_speed label" msgid "Retraction Prime Speed" -msgstr "Retraction Prime Speed" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -1648,7 +1807,7 @@ msgstr "フィラメントが引き戻される時のスピード" #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount label" msgid "Retraction Extra Prime Amount" -msgstr "Retraction Extra Prime Amount" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount description" @@ -1658,7 +1817,7 @@ msgstr "マテリアルによっては、移動中に滲み出てきてしまう #: fdmprinter.def.json msgctxt "retraction_min_travel label" msgid "Retraction Minimum Travel" -msgstr "Retraction Minimum Travel" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_min_travel description" @@ -1668,7 +1827,7 @@ msgstr "フィラメントを引き戻す際に必要な最小移動距離。こ #: fdmprinter.def.json msgctxt "retraction_count_max label" msgid "Maximum Retraction Count" -msgstr "Maximum Retraction Count" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_count_max description" @@ -1678,7 +1837,7 @@ msgstr "この設定は、決められた距離の中で起こる引き戻しの #: fdmprinter.def.json msgctxt "retraction_extrusion_window label" msgid "Minimum Extrusion Distance Window" -msgstr "Minimum Extrusion Distance Window" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_extrusion_window description" @@ -1688,7 +1847,7 @@ msgstr "最大の引き戻し回数。この値は引き戻す距離と同じで #: fdmprinter.def.json msgctxt "material_standby_temperature label" msgid "Standby Temperature" -msgstr "Standby Temperature" +msgstr "" #: fdmprinter.def.json msgctxt "material_standby_temperature description" @@ -1698,7 +1857,7 @@ msgstr "印刷していないノズルの温度(もう一方のノズルが印 #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount label" msgid "Nozzle Switch Retraction Distance" -msgstr "Nozzle Switch Retraction Distance" +msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount description" @@ -1708,7 +1867,7 @@ msgstr "引き込み量:引き込みを行わない場合は0に設定しま #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds label" msgid "Nozzle Switch Retraction Speed" -msgstr "Nozzle Switch Retraction Speed" +msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds description" @@ -1718,7 +1877,7 @@ msgstr "フィラメントを引き戻す速度。速度が早い程良いが早 #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed label" msgid "Nozzle Switch Retract Speed" -msgstr "Nozzle Switch Retract Speed" +msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed description" @@ -1728,7 +1887,7 @@ msgstr "ノズル切り替え中のフィラメントの引き込み速度。" #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed label" msgid "Nozzle Switch Prime Speed" -msgstr "Nozzle Switch Prime Speed" +msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed description" @@ -1738,7 +1897,7 @@ msgstr "ノズル スイッチ後にフィラメントが押し戻される速 #: fdmprinter.def.json msgctxt "speed label" msgid "Speed" -msgstr "Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed description" @@ -1748,7 +1907,7 @@ msgstr "スピード" #: fdmprinter.def.json msgctxt "speed_print label" msgid "Print Speed" -msgstr "Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_print description" @@ -1758,7 +1917,7 @@ msgstr "印刷スピード" #: fdmprinter.def.json msgctxt "speed_infill label" msgid "Infill Speed" -msgstr "Infill Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_infill description" @@ -1768,7 +1927,7 @@ msgstr "インフィルを印刷する速度" #: fdmprinter.def.json msgctxt "speed_wall label" msgid "Wall Speed" -msgstr "Wall Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_wall description" @@ -1778,7 +1937,7 @@ msgstr "ウォールを印刷する速度" #: fdmprinter.def.json msgctxt "speed_wall_0 label" msgid "Outer Wall Speed" -msgstr "Outer Wall Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_0 description" @@ -1788,7 +1947,7 @@ msgstr "最も外側のウォールをプリントする速度。外側の壁を #: fdmprinter.def.json msgctxt "speed_wall_x label" msgid "Inner Wall Speed" -msgstr "Inner Wall Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_x description" @@ -1799,36 +1958,27 @@ msgstr "内側のウォールをプリントする速度 外壁より内壁を msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" msgstr "" +#msgstr "トップサーフェススキンの速度" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "上部表面プリント時の速度" #: fdmprinter.def.json msgctxt "speed_topbottom label" msgid "Top/Bottom Speed" -msgstr "Top/Bottom Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "トップ/ボトムのレイヤーのプリント速度" -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" -msgstr "Support Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_support description" @@ -1838,7 +1988,7 @@ msgstr "サポート材をプリントする速度です。高速でサポート #: fdmprinter.def.json msgctxt "speed_support_infill label" msgid "Support Infill Speed" -msgstr "Support Infill Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_support_infill description" @@ -1848,7 +1998,7 @@ msgstr "サポート材のインフィルをプリントする速度 低速で #: fdmprinter.def.json msgctxt "speed_support_interface label" msgid "Support Interface Speed" -msgstr "Support Interface Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_support_interface description" @@ -1859,6 +2009,7 @@ msgstr "ルーフとフロアのサポート材をプリントする速度。低 msgctxt "speed_support_roof label" msgid "Support Roof Speed" msgstr "" +#msgstr "サポートルーフの速度" #: fdmprinter.def.json msgctxt "speed_support_roof description" @@ -1869,6 +2020,7 @@ msgstr "ルーフとフロアのサポート材をプリントする速度 こ msgctxt "speed_support_bottom label" msgid "Support Floor Speed" msgstr "" +#msgstr "サポートフロアの速度" #: fdmprinter.def.json msgctxt "speed_support_bottom description" @@ -1878,7 +2030,7 @@ msgstr "フロアのサポートがプリントされる速度。低速で印刷 #: fdmprinter.def.json msgctxt "speed_prime_tower label" msgid "Prime Tower Speed" -msgstr "Prime Tower Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_prime_tower description" @@ -1888,7 +2040,7 @@ msgstr "プライムタワーをプリントする速度です。異なるフィ #: fdmprinter.def.json msgctxt "speed_travel label" msgid "Travel Speed" -msgstr "Travel Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_travel description" @@ -1898,7 +2050,7 @@ msgstr "移動中のスピード" #: fdmprinter.def.json msgctxt "speed_layer_0 label" msgid "Initial Layer Speed" -msgstr "Initial Layer Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_layer_0 description" @@ -1908,7 +2060,7 @@ msgstr "一層目での速度。ビルトプレートへの接着を向上する #: fdmprinter.def.json msgctxt "speed_print_layer_0 label" msgid "Initial Layer Print Speed" -msgstr "Initial Layer Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_print_layer_0 description" @@ -1918,7 +2070,7 @@ msgstr "一層目をプリントする速度 ビルトプレートへの接着 #: fdmprinter.def.json msgctxt "speed_travel_layer_0 label" msgid "Initial Layer Travel Speed" -msgstr "Initial Layer Travel Speed" +msgstr "" #: fdmprinter.def.json msgctxt "speed_travel_layer_0 description" @@ -1928,7 +2080,7 @@ msgstr "最初のレイヤーを印刷する際のトラベルスピード。低 #: fdmprinter.def.json msgctxt "skirt_brim_speed label" msgid "Skirt/Brim Speed" -msgstr "Skirt/Brim Speed" +msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_speed description" @@ -1938,7 +2090,7 @@ msgstr "スカートとブリムのプリント速度 通常は一層目のス #: fdmprinter.def.json msgctxt "max_feedrate_z_override label" msgid "Maximum Z Speed" -msgstr "Maximum Z Speed" +msgstr "" #: fdmprinter.def.json msgctxt "max_feedrate_z_override description" @@ -1948,7 +2100,7 @@ msgstr "ビルトプレートが移動する最高速度 この値を0に設 #: fdmprinter.def.json msgctxt "speed_slowdown_layers label" msgid "Number of Slower Layers" -msgstr "Number of Slower Layers" +msgstr "" #: fdmprinter.def.json msgctxt "speed_slowdown_layers description" @@ -1958,7 +2110,7 @@ msgstr "最初の数層は印刷失敗の可能性を軽減させるために、 #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled label" msgid "Equalize Filament Flow" -msgstr "Equalize Filament Flow" +msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled description" @@ -1968,7 +2120,7 @@ msgstr "通常より細いラインを高速プリントするので、時間当 #: fdmprinter.def.json msgctxt "speed_equalize_flow_max label" msgid "Maximum Speed for Flow Equalization" -msgstr "Maximum Speed for Flow Equalization" +msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_max description" @@ -1978,7 +2130,7 @@ msgstr "吐出を均一にするための調整時の最高スピード" #: fdmprinter.def.json msgctxt "acceleration_enabled label" msgid "Enable Acceleration Control" -msgstr "Enable Acceleration Control" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_enabled description" @@ -1988,7 +2140,7 @@ msgstr "プリントヘッドのスピード調整の有効化 加速度の増 #: fdmprinter.def.json msgctxt "acceleration_print label" msgid "Print Acceleration" -msgstr "Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print description" @@ -1998,7 +2150,7 @@ msgstr "印刷の加速スピードです。" #: fdmprinter.def.json msgctxt "acceleration_infill label" msgid "Infill Acceleration" -msgstr "Infill Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_infill description" @@ -2008,7 +2160,7 @@ msgstr "インフィルの印刷の加速スピード。" #: fdmprinter.def.json msgctxt "acceleration_wall label" msgid "Wall Acceleration" -msgstr "Wall Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall description" @@ -2018,7 +2170,7 @@ msgstr "ウォールをプリントする際の加速度。" #: fdmprinter.def.json msgctxt "acceleration_wall_0 label" msgid "Outer Wall Acceleration" -msgstr "Outer Wall Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_0 description" @@ -2028,7 +2180,7 @@ msgstr "最も外側の壁をプリントする際の加速度" #: fdmprinter.def.json msgctxt "acceleration_wall_x label" msgid "Inner Wall Acceleration" -msgstr "Inner Wall Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_x description" @@ -2039,36 +2191,27 @@ msgstr "内側のウォールがが出力される際のスピード。" msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" msgstr "" +#msgstr "トップ表面スキンの加速度" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "上部表面プリント時の加速度" #: fdmprinter.def.json msgctxt "acceleration_topbottom label" msgid "Top/Bottom Acceleration" -msgstr "Top/Bottom Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "トップとボトムのレイヤーの印刷加速度。" -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" -msgstr "Support Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support description" @@ -2078,7 +2221,7 @@ msgstr "サポート材プリント時の加速スピード" #: fdmprinter.def.json msgctxt "acceleration_support_infill label" msgid "Support Infill Acceleration" -msgstr "Support Infill Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_infill description" @@ -2088,7 +2231,7 @@ msgstr "インフィルのサポート材のプリント時の加速度。" #: fdmprinter.def.json msgctxt "acceleration_support_interface label" msgid "Support Interface Acceleration" -msgstr "Support Interface Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_interface description" @@ -2099,6 +2242,7 @@ msgstr "サポートの上面と下面が印刷される加速度。低加速度 msgctxt "acceleration_support_roof label" msgid "Support Roof Acceleration" msgstr "" +#msgstr "サポートルーフの加速度" #: fdmprinter.def.json msgctxt "acceleration_support_roof description" @@ -2109,6 +2253,7 @@ msgstr "サポートの上面がプリントされる加速度、低加速度で msgctxt "acceleration_support_bottom label" msgid "Support Floor Acceleration" msgstr "" +#msgstr "サポートフロアの加速度" #: fdmprinter.def.json msgctxt "acceleration_support_bottom description" @@ -2118,7 +2263,7 @@ msgstr "サポートのフロアが印刷される加速度。より低い加速 #: fdmprinter.def.json msgctxt "acceleration_prime_tower label" msgid "Prime Tower Acceleration" -msgstr "Prime Tower Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_prime_tower description" @@ -2128,7 +2273,7 @@ msgstr "プライムタワーの印刷時のスピード。" #: fdmprinter.def.json msgctxt "acceleration_travel label" msgid "Travel Acceleration" -msgstr "Travel Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel description" @@ -2138,7 +2283,7 @@ msgstr "移動中の加速度。" #: fdmprinter.def.json msgctxt "acceleration_layer_0 label" msgid "Initial Layer Acceleration" -msgstr "Initial Layer Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_layer_0 description" @@ -2148,7 +2293,7 @@ msgstr "初期レイヤーの加速度。" #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 label" msgid "Initial Layer Print Acceleration" -msgstr "Initial Layer Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 description" @@ -2158,7 +2303,7 @@ msgstr "初期レイヤーの印刷中の加速度。" #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 label" msgid "Initial Layer Travel Acceleration" -msgstr "Initial Layer Travel Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 description" @@ -2168,7 +2313,7 @@ msgstr "最初のレイヤー時の加速度" #: fdmprinter.def.json msgctxt "acceleration_skirt_brim label" msgid "Skirt/Brim Acceleration" -msgstr "Skirt/Brim Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "acceleration_skirt_brim description" @@ -2178,7 +2323,7 @@ msgstr "スカートとブリム印刷時の加速度。通常、初期レイヤ #: fdmprinter.def.json msgctxt "jerk_enabled label" msgid "Enable Jerk Control" -msgstr "Enable Jerk Control" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_enabled description" @@ -2188,7 +2333,7 @@ msgstr "X または Y 軸の速度が変更する際、プリントヘッドの #: fdmprinter.def.json msgctxt "jerk_print label" msgid "Print Jerk" -msgstr "Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_print description" @@ -2198,7 +2343,7 @@ msgstr "プリントヘッドの最大瞬間速度の変更。" #: fdmprinter.def.json msgctxt "jerk_infill label" msgid "Infill Jerk" -msgstr "Infill Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_infill description" @@ -2208,7 +2353,7 @@ msgstr "インフィルの印刷時の瞬間速度の変更。" #: fdmprinter.def.json msgctxt "jerk_wall label" msgid "Wall Jerk" -msgstr "Wall Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall description" @@ -2218,7 +2363,7 @@ msgstr "ウォールのプリント時の最大瞬間速度を変更。" #: fdmprinter.def.json msgctxt "jerk_wall_0 label" msgid "Outer Wall Jerk" -msgstr "Outer Wall Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_0 description" @@ -2228,7 +2373,7 @@ msgstr "外側のウォールが出力される際の最大瞬間速度の変更 #: fdmprinter.def.json msgctxt "jerk_wall_x label" msgid "Inner Wall Jerk" -msgstr "Inner Wall Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_x description" @@ -2239,36 +2384,27 @@ msgstr "内側のウォールがプリントされれう際の最大瞬間速度 msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" msgstr "" +#msgstr "トップサーフェススキンジャーク" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "上部表面プリント時の最大加速度" #: fdmprinter.def.json msgctxt "jerk_topbottom label" msgid "Top/Bottom Jerk" -msgstr "Top/Bottom Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "トップとボトムのレイヤーを印刷する際の最大瞬間速度の変更。" -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" -msgstr "Support Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_support description" @@ -2278,7 +2414,7 @@ msgstr "サポート材の印刷時の最大瞬間速度の変更。" #: fdmprinter.def.json msgctxt "jerk_support_infill label" msgid "Support Infill Jerk" -msgstr "Support Infill Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_infill description" @@ -2288,7 +2424,7 @@ msgstr "サポート材の印刷時、最大瞬間速度の変更。" #: fdmprinter.def.json msgctxt "jerk_support_interface label" msgid "Support Interface Jerk" -msgstr "Support Interface Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_interface description" @@ -2299,6 +2435,7 @@ msgstr "どのルーフとフロアのサポート部分を印刷するかによ msgctxt "jerk_support_roof label" msgid "Support Roof Jerk" msgstr "" +#msgstr "サポートルーフのジャーク" #: fdmprinter.def.json msgctxt "jerk_support_roof description" @@ -2309,6 +2446,7 @@ msgstr "どのサポートのルーフ部分を印刷するかによって最大 msgctxt "jerk_support_bottom label" msgid "Support Floor Jerk" msgstr "" +#msgstr "サポートフロアのジャーク" #: fdmprinter.def.json msgctxt "jerk_support_bottom description" @@ -2318,7 +2456,7 @@ msgstr "どのサポートのフロア部分を印刷するかによって最大 #: fdmprinter.def.json msgctxt "jerk_prime_tower label" msgid "Prime Tower Jerk" -msgstr "Prime Tower Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_prime_tower description" @@ -2328,7 +2466,7 @@ msgstr "プライムタワーがプリントされる際の最大瞬間速度を #: fdmprinter.def.json msgctxt "jerk_travel label" msgid "Travel Jerk" -msgstr "Travel Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel description" @@ -2338,7 +2476,7 @@ msgstr "移動する際の最大瞬時速度の変更。" #: fdmprinter.def.json msgctxt "jerk_layer_0 label" msgid "Initial Layer Jerk" -msgstr "Initial Layer Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_layer_0 description" @@ -2348,7 +2486,7 @@ msgstr "初期レイヤーの最大瞬時速度の変更。" #: fdmprinter.def.json msgctxt "jerk_print_layer_0 label" msgid "Initial Layer Print Jerk" -msgstr "Initial Layer Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_print_layer_0 description" @@ -2358,7 +2496,7 @@ msgstr "初期レイヤー印刷中の最大瞬時速度の変化。" #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 label" msgid "Initial Layer Travel Jerk" -msgstr "Initial Layer Travel Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 description" @@ -2368,7 +2506,7 @@ msgstr "移動加速度は最初のレイヤーに適用されます。" #: fdmprinter.def.json msgctxt "jerk_skirt_brim label" msgid "Skirt/Brim Jerk" -msgstr "Skirt/Brim Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "jerk_skirt_brim description" @@ -2378,7 +2516,7 @@ msgstr "スカートとブリムがプリントされる最大瞬時速度の変 #: fdmprinter.def.json msgctxt "travel label" msgid "Travel" -msgstr "Travel" +msgstr "" #: fdmprinter.def.json msgctxt "travel description" @@ -2388,7 +2526,7 @@ msgstr "移動" #: fdmprinter.def.json msgctxt "retraction_combing label" msgid "Combing Mode" -msgstr "Combing Mode" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_combing description" @@ -2398,22 +2536,22 @@ msgstr "コーミングは、走行時にすでに印刷された領域内にノ #: fdmprinter.def.json msgctxt "retraction_combing option off" msgid "Off" -msgstr "Off" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_combing option all" msgid "All" -msgstr "All" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_combing option noskin" msgid "No Skin" -msgstr "No Skin" +msgstr "" #: fdmprinter.def.json msgctxt "travel_retract_before_outer_wall label" msgid "Retract Before Outer Wall" -msgstr "Retract Before Outer Wall" +msgstr "" #: fdmprinter.def.json msgctxt "travel_retract_before_outer_wall description" @@ -2423,7 +2561,7 @@ msgstr "移動して外側のウォールをプリントする際、毎回引き #: fdmprinter.def.json msgctxt "travel_avoid_other_parts label" msgid "Avoid Printed Parts When Traveling" -msgstr "Avoid Printed Parts When Traveling" +msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_other_parts description" @@ -2433,7 +2571,7 @@ msgstr "ノズルは、移動時に既に印刷されたパーツを避けます #: fdmprinter.def.json msgctxt "travel_avoid_distance label" msgid "Travel Avoid Distance" -msgstr "Travel Avoid Distance" +msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_distance description" @@ -2443,7 +2581,7 @@ msgstr "ノズルが既に印刷された部分を移動する際の間隔" #: fdmprinter.def.json msgctxt "start_layers_at_same_position label" msgid "Start Layers with the Same Part" -msgstr "Start Layers with the Same Part" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -2454,7 +2592,7 @@ msgstr "各レイヤーの印刷は決まった場所近い距離のポイント #: fdmprinter.def.json msgctxt "layer_start_x label" msgid "Layer Start X" -msgstr "Layer Start X" +msgstr "" #: fdmprinter.def.json msgctxt "layer_start_x description" @@ -2464,7 +2602,7 @@ msgstr "各レイヤーのプリントを開始する部分をしめすX座標 #: fdmprinter.def.json msgctxt "layer_start_y label" msgid "Layer Start Y" -msgstr "Layer Start Y" +msgstr "" #: fdmprinter.def.json msgctxt "layer_start_y description" @@ -2474,7 +2612,7 @@ msgstr "各レイヤーのプリントを開始する部分をしめすY座標 #: fdmprinter.def.json msgctxt "retraction_hop_enabled label" msgid "Z Hop When Retracted" -msgstr "Z Hop When Retracted" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_enabled description" @@ -2484,7 +2622,7 @@ msgstr "引き戻しが完了すると、ビルドプレートが下降してノ #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides label" msgid "Z Hop Only Over Printed Parts" -msgstr "Z Hop Only Over Printed Parts" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides description" @@ -2494,7 +2632,7 @@ msgstr "走行時に印刷部品への衝突を避けるため、水平移動で #: fdmprinter.def.json msgctxt "retraction_hop label" msgid "Z Hop Height" -msgstr "Z Hop Height" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop description" @@ -2504,7 +2642,7 @@ msgstr "Zホップを実行するときの高さ。" #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch label" msgid "Z Hop After Extruder Switch" -msgstr "Z Hop After Extruder Switch" +msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch description" @@ -2514,7 +2652,7 @@ msgstr "マシーンが1つのエクストルーダーからもう一つのエ #: fdmprinter.def.json msgctxt "cooling label" msgid "Cooling" -msgstr "Cooling" +msgstr "" #: fdmprinter.def.json msgctxt "cooling description" @@ -2524,7 +2662,7 @@ msgstr "冷却" #: fdmprinter.def.json msgctxt "cool_fan_enabled label" msgid "Enable Print Cooling" -msgstr "Enable Print Cooling" +msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_enabled description" @@ -2534,7 +2672,7 @@ msgstr "印刷中の冷却ファンを有効にします。ファンは、短い #: fdmprinter.def.json msgctxt "cool_fan_speed label" msgid "Fan Speed" -msgstr "Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed description" @@ -2544,7 +2682,7 @@ msgstr "冷却ファンが回転する速度。" #: fdmprinter.def.json msgctxt "cool_fan_speed_min label" msgid "Regular Fan Speed" -msgstr "Regular Fan Speed" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -2555,7 +2693,7 @@ msgstr "しきい値に達する前のファンの回転スピード。プリン #: fdmprinter.def.json msgctxt "cool_fan_speed_max label" msgid "Maximum Fan Speed" -msgstr "Maximum Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_max description" @@ -2565,7 +2703,7 @@ msgstr "最小積層時間でファンが回転する速度。しきい値に達 #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max label" msgid "Regular/Maximum Fan Speed Threshold" -msgstr "Regular/Maximum Fan Speed Threshold" +msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max description" @@ -2575,7 +2713,7 @@ msgstr "通常速度と最速の間でしきい値を設定する積層時間。 #: fdmprinter.def.json msgctxt "cool_fan_speed_0 label" msgid "Initial Fan Speed" -msgstr "Initial Fan Speed" +msgstr "" #: fdmprinter.def.json #, fuzzy @@ -2586,7 +2724,7 @@ msgstr "プリント開始時にファンが回転する速度。後続のレイ #: fdmprinter.def.json msgctxt "cool_fan_full_at_height label" msgid "Regular Fan Speed at Height" -msgstr "Regular Fan Speed at Height" +msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_at_height description" @@ -2596,7 +2734,7 @@ msgstr "通常速度でファンが回転するときの高さ。ここより下 #: fdmprinter.def.json msgctxt "cool_fan_full_layer label" msgid "Regular Fan Speed at Layer" -msgstr "Regular Fan Speed at Layer" +msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_layer description" @@ -2606,7 +2744,7 @@ msgstr "ファンが通常の速度で回転する時のレイヤー。通常速 #: fdmprinter.def.json msgctxt "cool_min_layer_time label" msgid "Minimum Layer Time" -msgstr "Minimum Layer Time" +msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time description" @@ -2616,7 +2754,7 @@ msgstr "一つのレイヤーに最低限費やす時間。1つの層に必ず #: fdmprinter.def.json msgctxt "cool_min_speed label" msgid "Minimum Speed" -msgstr "Minimum Speed" +msgstr "" #: fdmprinter.def.json msgctxt "cool_min_speed description" @@ -2626,7 +2764,7 @@ msgstr "最遅印刷速度。印刷の速度が遅すぎると、ノズル内の #: fdmprinter.def.json msgctxt "cool_lift_head label" msgid "Lift Head" -msgstr "Lift Head" +msgstr "" #: fdmprinter.def.json msgctxt "cool_lift_head description" @@ -2636,7 +2774,7 @@ msgstr "レイヤーの最小プリント時間より早く印刷が終わった #: fdmprinter.def.json msgctxt "support label" msgid "Support" -msgstr "Support" +msgstr "" #: fdmprinter.def.json msgctxt "support description" @@ -2647,6 +2785,7 @@ msgstr "サポート" msgctxt "support_enable label" msgid "Generate Support" msgstr "" +#msgstr "サポートを生成します。" #: fdmprinter.def.json msgctxt "support_enable description" @@ -2656,7 +2795,7 @@ msgstr "オーバーハングするモデルのサポートパーツの構造を #: fdmprinter.def.json msgctxt "support_extruder_nr label" msgid "Support Extruder" -msgstr "Support Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr description" @@ -2666,7 +2805,7 @@ msgstr "サポート材を印刷するためのエクストルーダー。複数 #: fdmprinter.def.json msgctxt "support_infill_extruder_nr label" msgid "Support Infill Extruder" -msgstr "Support Infill Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "support_infill_extruder_nr description" @@ -2676,7 +2815,7 @@ msgstr "サポート材のインフィルを印刷に使用するためのエク #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 label" msgid "First Layer Support Extruder" -msgstr "First Layer Support Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 description" @@ -2686,7 +2825,7 @@ msgstr "サポートのインフィルの最初の層を印刷に使用するエ #: fdmprinter.def.json msgctxt "support_interface_extruder_nr label" msgid "Support Interface Extruder" -msgstr "Support Interface Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_extruder_nr description" @@ -2697,6 +2836,7 @@ msgstr "サポートのルーフおよび底面を印刷するために使用す msgctxt "support_roof_extruder_nr label" msgid "Support Roof Extruder" msgstr "" +#msgstr "サポートルーフエクストルーダー" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr description" @@ -2707,6 +2847,7 @@ msgstr "サポートのルーフ面をプリントする際のエクストルー msgctxt "support_bottom_extruder_nr label" msgid "Support Floor Extruder" msgstr "" +#msgstr "サポートフロアエクストルーダー" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr description" @@ -2716,7 +2857,7 @@ msgstr "サポートのフロア面をプリントする際に使用するエク #: fdmprinter.def.json msgctxt "support_type label" msgid "Support Placement" -msgstr "Support Placement" +msgstr "" #: fdmprinter.def.json msgctxt "support_type description" @@ -2726,17 +2867,17 @@ msgstr "サポート材の配置を調整します。配置はTouching Buildplat #: fdmprinter.def.json msgctxt "support_type option buildplate" msgid "Touching Buildplate" -msgstr "Touching Buildplate" +msgstr "" #: fdmprinter.def.json msgctxt "support_type option everywhere" msgid "Everywhere" -msgstr "Everywhere" +msgstr "" #: fdmprinter.def.json msgctxt "support_angle label" msgid "Support Overhang Angle" -msgstr "Support Overhang Angle" +msgstr "" #: fdmprinter.def.json msgctxt "support_angle description" @@ -2746,7 +2887,7 @@ msgstr "サポート材がつくオーバーハングの最小角度。0° の #: fdmprinter.def.json msgctxt "support_pattern label" msgid "Support Pattern" -msgstr "Support Pattern" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern description" @@ -2756,37 +2897,43 @@ msgstr "サポート材の形。サポート材の除去の方法を頑丈また #: fdmprinter.def.json msgctxt "support_pattern option lines" msgid "Lines" -msgstr "Lines" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option grid" msgid "Grid" -msgstr "Grid" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option triangles" msgid "Triangles" -msgstr "Triangles" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option concentric" msgid "Concentric" -msgstr "Concentric" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option concentric_3d" msgid "Concentric 3D" -msgstr "Concentric 3D" +msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option zigzag" msgid "Zig Zag" -msgstr "Zig Zag" +msgstr "" + +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "" +#msgstr "クロス" #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" -msgstr "Connect Support ZigZags" +msgstr "" #: fdmprinter.def.json msgctxt "support_connect_zigzags description" @@ -2795,28 +2942,41 @@ msgstr "ジグザグを接続します。ジグザグ形のサポート材の強 #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" +msgid "Break Up Support In Chunks" msgstr "" +#msgstr "かたまりででサポートを割る" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "サポートラインの接続部分をスキップし、サポート材部分を壊れやすくします。この設定はジグザクのサポートインフィル材のパターンにて適用できます。" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" msgstr "" +#msgstr "サポートのかたまりサイズ" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "サポート毎行Nミリ時に、サポートの接続をわざと外し、後のサポート材の構造をもろくし、壊れやすくする。" #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" +msgid "Support Chunk Line Count" msgstr "" +#msgstr "サポートのかたまり線数" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "毎行Nミリ時に、サポートの接続をわざとスキップし、後のサポート材の構造をもろくし、壊れやすくする。" #: fdmprinter.def.json msgctxt "support_infill_rate label" msgid "Support Density" -msgstr "Support Density" +msgstr "" #: fdmprinter.def.json msgctxt "support_infill_rate description" @@ -2826,7 +2986,7 @@ msgstr "サポート材の密度を調整します。大きな値ではオーバ #: fdmprinter.def.json msgctxt "support_line_distance label" msgid "Support Line Distance" -msgstr "Support Line Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_line_distance description" @@ -2836,7 +2996,7 @@ msgstr "印刷されたサポート材の間隔。この設定は、サポート #: fdmprinter.def.json msgctxt "support_z_distance label" msgid "Support Z Distance" -msgstr "Support Z Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_z_distance description" @@ -2846,7 +3006,7 @@ msgstr "サポート材のトップ/ボトム部分と印刷物との距離。 #: fdmprinter.def.json msgctxt "support_top_distance label" msgid "Support Top Distance" -msgstr "Support Top Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_top_distance description" @@ -2856,7 +3016,7 @@ msgstr "サポートの上部から印刷物までの距離。" #: fdmprinter.def.json msgctxt "support_bottom_distance label" msgid "Support Bottom Distance" -msgstr "Support Bottom Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_distance description" @@ -2866,7 +3026,7 @@ msgstr "印刷物とサポート材底部までの距離。" #: fdmprinter.def.json msgctxt "support_xy_distance label" msgid "Support X/Y Distance" -msgstr "Support X/Y Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance description" @@ -2876,7 +3036,7 @@ msgstr "印刷物からX/Y方向へのサポート材との距離" #: fdmprinter.def.json msgctxt "support_xy_overrides_z label" msgid "Support Distance Priority" -msgstr "Support Distance Priority" +msgstr "" #: fdmprinter.def.json msgctxt "support_xy_overrides_z description" @@ -2886,17 +3046,17 @@ msgstr "X /Y方向のサポートの距離がZ方向のサポートの距離を #: fdmprinter.def.json msgctxt "support_xy_overrides_z option xy_overrides_z" msgid "X/Y overrides Z" -msgstr "X/Y overrides Z" +msgstr "" #: fdmprinter.def.json msgctxt "support_xy_overrides_z option z_overrides_xy" msgid "Z overrides X/Y" -msgstr "Z overrides X/Y" +msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang label" msgid "Minimum Support X/Y Distance" -msgstr "Minimum Support X/Y Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang description" @@ -2906,7 +3066,7 @@ msgstr "X/Y方向におけるオーバーハングからサポートまでの距 #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height label" msgid "Support Stair Step Height" -msgstr "Support Stair Step Height" +msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height description" @@ -2917,6 +3077,7 @@ msgstr "モデルにのっている階段状のサポートの底のステップ msgctxt "support_bottom_stair_step_width label" msgid "Support Stair Step Maximum Width" msgstr "" +#msgstr "階段状ステップサポートの最大幅" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width description" @@ -2926,7 +3087,7 @@ msgstr "モデルにのっている階段のような下部のサポートのス #: fdmprinter.def.json msgctxt "support_join_distance label" msgid "Support Join Distance" -msgstr "Support Join Distance" +msgstr "" #: fdmprinter.def.json msgctxt "support_join_distance description" @@ -2936,7 +3097,7 @@ msgstr "X/Y方向のサポート構造間の最大距離。別の構造がこの #: fdmprinter.def.json msgctxt "support_offset label" msgid "Support Horizontal Expansion" -msgstr "Support Horizontal Expansion" +msgstr "" #: fdmprinter.def.json msgctxt "support_offset description" @@ -2947,36 +3108,39 @@ msgstr "各レイヤーのサポート用ポリゴンに適用されるオフセ msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" msgstr "" +#msgstr "サポートインフィルのレイヤーの厚さ" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "サポートのインフィルの厚さ。この値はレイヤーの倍数にする必要があり、違う場合は倍数に近い値に設定されます。" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" msgstr "" +#msgstr "段階的なサポート インフィルステップ" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "天井面より下に遠ざかる際にサポートのインフィル密度が半減する回数 天井面に近い領域ほど高い密度となり、サポートのインフィル密度になります" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" msgstr "" +#msgstr "段階的なサポート インフィル ステップの高さ" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "密度が半分に切り替える前の所定のサポートのインフィルの高さ。" #: fdmprinter.def.json msgctxt "support_interface_enable label" msgid "Enable Support Interface" -msgstr "Enable Support Interface" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_enable description" @@ -2987,6 +3151,7 @@ msgstr "モデルとサポートの間に密なインターフェースを生成 msgctxt "support_roof_enable label" msgid "Enable Support Roof" msgstr "" +#msgstr "サポートルーフの有効化" #: fdmprinter.def.json msgctxt "support_roof_enable description" @@ -2997,6 +3162,7 @@ msgstr "サポートの上部とモデルの間に高密度の厚板を形成し msgctxt "support_bottom_enable label" msgid "Enable Support Floor" msgstr "" +#msgstr "サポートフロアを有効にします。" #: fdmprinter.def.json msgctxt "support_bottom_enable description" @@ -3006,7 +3172,7 @@ msgstr "サポートの上部とモデルの間に高密度の厚板を形成し #: fdmprinter.def.json msgctxt "support_interface_height label" msgid "Support Interface Thickness" -msgstr "Support Interface Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_height description" @@ -3016,7 +3182,7 @@ msgstr "底面または上部のモデルと接触するサポートのインタ #: fdmprinter.def.json msgctxt "support_roof_height label" msgid "Support Roof Thickness" -msgstr "Support Roof Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "support_roof_height description" @@ -3027,6 +3193,7 @@ msgstr "サポートのルーフの厚さ。これは、モデルの下につく msgctxt "support_bottom_height label" msgid "Support Floor Thickness" msgstr "" +#msgstr "サポートのフロアの厚み" #: fdmprinter.def.json msgctxt "support_bottom_height description" @@ -3036,7 +3203,7 @@ msgstr "サポート材の底部の厚さ。これは、サポートが置かれ #: fdmprinter.def.json msgctxt "support_interface_skip_height label" msgid "Support Interface Resolution" -msgstr "Support Interface Resolution" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_skip_height description" @@ -3046,7 +3213,7 @@ msgstr "サポートの上下にモデルがあるかどうか確認するには #: fdmprinter.def.json msgctxt "support_interface_density label" msgid "Support Interface Density" -msgstr "Support Interface Density" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_density description" @@ -3057,6 +3224,7 @@ msgstr "サポート材のルーフとフロアの密度を調整します 大 msgctxt "support_roof_density label" msgid "Support Roof Density" msgstr "" +#msgstr "サポートルーフの密度" #: fdmprinter.def.json msgctxt "support_roof_density description" @@ -3067,6 +3235,7 @@ msgstr "サポート材のルーフの部分の密度を調整します 大き msgctxt "support_roof_line_distance label" msgid "Support Roof Line Distance" msgstr "" +#msgstr "サポートルーフライン距離" #: fdmprinter.def.json msgctxt "support_roof_line_distance description" @@ -3077,6 +3246,7 @@ msgstr "印刷されたサポートルーフ線間の距離。この設定は、 msgctxt "support_bottom_density label" msgid "Support Floor Density" msgstr "" +#msgstr "サポートフロア密度" #: fdmprinter.def.json msgctxt "support_bottom_density description" @@ -3096,7 +3266,7 @@ msgstr "印刷されたサポートのフロアのライン間の距離。この #: fdmprinter.def.json msgctxt "support_interface_pattern label" msgid "Support Interface Pattern" -msgstr "Support Interface Pattern" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern description" @@ -3106,37 +3276,38 @@ msgstr "モデルとサポートのインタフェースが印刷されるパタ #: fdmprinter.def.json msgctxt "support_interface_pattern option lines" msgid "Lines" -msgstr "Lines" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern option grid" msgid "Grid" -msgstr "Grid" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern option triangles" msgid "Triangles" -msgstr "Triangles" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern option concentric" msgid "Concentric" -msgstr "Concentric" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern option concentric_3d" msgid "Concentric 3D" -msgstr "Concentric 3D" +msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern option zigzag" msgid "Zig Zag" -msgstr "Zig Zag" +msgstr "" #: fdmprinter.def.json msgctxt "support_roof_pattern label" msgid "Support Roof Pattern" msgstr "" +#msgstr "ルーフのサポートのパターン" #: fdmprinter.def.json msgctxt "support_roof_pattern description" @@ -3147,36 +3318,43 @@ msgstr "サポートのルーフが印刷されるパターン" msgctxt "support_roof_pattern option lines" msgid "Lines" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "support_roof_pattern option grid" msgid "Grid" msgstr "" +#msgstr "グリッド" #: fdmprinter.def.json msgctxt "support_roof_pattern option triangles" msgid "Triangles" msgstr "" +#msgstr "三角形" #: fdmprinter.def.json msgctxt "support_roof_pattern option concentric" msgid "Concentric" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "support_roof_pattern option concentric_3d" msgid "Concentric 3D" msgstr "" +#msgstr "同心3D" #: fdmprinter.def.json msgctxt "support_roof_pattern option zigzag" msgid "Zig Zag" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "support_bottom_pattern label" msgid "Support Floor Pattern" msgstr "" +#msgstr "サポートフロアパターン" #: fdmprinter.def.json msgctxt "support_bottom_pattern description" @@ -3187,36 +3365,42 @@ msgstr "サポートのフロアが印刷されるパターン。" msgctxt "support_bottom_pattern option lines" msgid "Lines" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "support_bottom_pattern option grid" msgid "Grid" msgstr "" +#msgstr "グリッド" #: fdmprinter.def.json msgctxt "support_bottom_pattern option triangles" msgid "Triangles" msgstr "" +#msgstr "三角形" #: fdmprinter.def.json msgctxt "support_bottom_pattern option concentric" msgid "Concentric" msgstr "" +#msgstr "同心円" #: fdmprinter.def.json msgctxt "support_bottom_pattern option concentric_3d" msgid "Concentric 3D" msgstr "" +#msgstr "コンセントリック3D" #: fdmprinter.def.json msgctxt "support_bottom_pattern option zigzag" msgid "Zig Zag" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "support_use_towers label" msgid "Use Towers" -msgstr "Use Towers" +msgstr "" #: fdmprinter.def.json msgctxt "support_use_towers description" @@ -3226,7 +3410,7 @@ msgstr "特殊なタワーを使用して、小さなオーバーハングして #: fdmprinter.def.json msgctxt "support_tower_diameter label" msgid "Tower Diameter" -msgstr "Tower Diameter" +msgstr "" #: fdmprinter.def.json msgctxt "support_tower_diameter description" @@ -3236,7 +3420,7 @@ msgstr "特別な塔の直径。" #: fdmprinter.def.json msgctxt "support_minimal_diameter label" msgid "Minimum Diameter" -msgstr "Minimum Diameter" +msgstr "" #: fdmprinter.def.json msgctxt "support_minimal_diameter description" @@ -3246,7 +3430,7 @@ msgstr "特殊なサポート塔によって支持される小さな領域のX / #: fdmprinter.def.json msgctxt "support_tower_roof_angle label" msgid "Tower Roof Angle" -msgstr "Tower Roof Angle" +msgstr "" #: fdmprinter.def.json msgctxt "support_tower_roof_angle description" @@ -3256,7 +3440,7 @@ msgstr "タワーの屋上の角度。値が高いほど尖った屋根が得ら #: fdmprinter.def.json msgctxt "platform_adhesion label" msgid "Build Plate Adhesion" -msgstr "Build Plate Adhesion" +msgstr "" #: fdmprinter.def.json msgctxt "platform_adhesion description" @@ -3267,6 +3451,7 @@ msgstr "密着性" msgctxt "prime_blob_enable label" msgid "Enable Prime Blob" msgstr "" +#msgstr "プライムブロブを有効にする" #: fdmprinter.def.json msgctxt "prime_blob_enable description" @@ -3276,7 +3461,7 @@ msgstr "印刷する前にフィラメントの小さな塊を作るかどうか #: fdmprinter.def.json msgctxt "extruder_prime_pos_x label" msgid "Extruder Prime X Position" -msgstr "Extruder Prime X Position" +msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_x description" @@ -3286,7 +3471,7 @@ msgstr "プリント開始時のノズルの位置を表すX座標。" #: fdmprinter.def.json msgctxt "extruder_prime_pos_y label" msgid "Extruder Prime Y Position" -msgstr "Extruder Prime Y Position" +msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_y description" @@ -3296,7 +3481,7 @@ msgstr "プリント開始時にノズル位置を表すY座標。" #: fdmprinter.def.json msgctxt "adhesion_type label" msgid "Build Plate Adhesion Type" -msgstr "Build Plate Adhesion Type" +msgstr "" #: fdmprinter.def.json msgctxt "adhesion_type description" @@ -3306,27 +3491,31 @@ msgstr "エクストルーダーとビルドプレートへの接着両方を改 #: fdmprinter.def.json msgctxt "adhesion_type option skirt" msgid "Skirt" -msgstr "Skirt" +msgstr "" +#msgstr "スカート" #: fdmprinter.def.json msgctxt "adhesion_type option brim" msgid "Brim" -msgstr "Brim" +msgstr "" +#msgstr "ブリム" #: fdmprinter.def.json msgctxt "adhesion_type option raft" msgid "Raft" -msgstr "Raft" +msgstr "" +#msgstr "ラフト" #: fdmprinter.def.json msgctxt "adhesion_type option none" msgid "None" -msgstr "None" +msgstr "" +#msgstr "なし" #: fdmprinter.def.json msgctxt "adhesion_extruder_nr label" msgid "Build Plate Adhesion Extruder" -msgstr "Build Plate Adhesion Extruder" +msgstr "" #: fdmprinter.def.json msgctxt "adhesion_extruder_nr description" @@ -3336,7 +3525,7 @@ msgstr "スカート/ブリム/ラフトをプリントする際のエクスト #: fdmprinter.def.json msgctxt "skirt_line_count label" msgid "Skirt Line Count" -msgstr "Skirt Line Count" +msgstr "" #: fdmprinter.def.json msgctxt "skirt_line_count description" @@ -3346,7 +3535,7 @@ msgstr "複数のスカートラインを使用すると、小さなモデル形 #: fdmprinter.def.json msgctxt "skirt_gap label" msgid "Skirt Distance" -msgstr "Skirt Distance" +msgstr "" #: fdmprinter.def.json msgctxt "skirt_gap description" @@ -3358,7 +3547,7 @@ msgstr "スカートとプリントの最初のレイヤーの間の水平距離 #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" msgid "Skirt/Brim Minimum Length" -msgstr "Skirt/Brim Minimum Length" +msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length description" @@ -3368,7 +3557,7 @@ msgstr "スカートまたはブリム最短の長さ。この長さにすべて #: fdmprinter.def.json msgctxt "brim_width label" msgid "Brim Width" -msgstr "Brim Width" +msgstr "" #: fdmprinter.def.json msgctxt "brim_width description" @@ -3378,7 +3567,7 @@ msgstr "モデルから最外線のブリムまでの距離。大きなブリム #: fdmprinter.def.json msgctxt "brim_line_count label" msgid "Brim Line Count" -msgstr "Brim Line Count" +msgstr "" #: fdmprinter.def.json msgctxt "brim_line_count description" @@ -3388,27 +3577,60 @@ msgstr "ブリムに使用される線数。ブリムの線数は、ビルドプ #: fdmprinter.def.json msgctxt "brim_outside_only label" msgid "Brim Only on Outside" -msgstr "Brim Only on Outside" +msgstr "" #: fdmprinter.def.json msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "モデルの外側のみにブリムを印刷します。これにより、後で取り除くブリムの量が減少します。またプレートへの接着力はそれほど低下しません。" +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "" +#msgstr "初期レイヤーのZオフセット" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "エクストルーダーは、最初のレイヤーの通常の高さからこの値でオフセットされます。それは、正 (上昇) または負 (低下)。エクストルーダーを少しだけ上昇させた方が、フィラメントによってはビルドプレートに付着しやすくなります。" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "" +#msgstr "Z オフセット テーパーレイヤー" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "0 以外の場合、Z オフセットは多くのレイヤーを介して 0 に減らされます。0 の値は そのZ オフセットがプリント中すべてのレイヤーにてコンスタントを維持することを意味します。" + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" -msgstr "Raft Extra Margin" +msgstr "" #: fdmprinter.def.json msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "ラフトが有効になっている場合、モデルの周りに余分なラフト領域ができます。値を大きくするとより強力なラフトができますが、多くの材料を使用し、造形範囲は少なくなります。" +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "" +#msgstr "ラフトスムージング" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "この設定は、ラフトのアウトラインの内側の角が丸みを帯びているかを制御します。内側のコーナーは、与えられた値と等しい半径の半円に丸められています。この設定では、円よりも小さいラフトアウトラインの穴は削除されます。" + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" -msgstr "Raft Air Gap" +msgstr "" #: fdmprinter.def.json msgctxt "raft_airgap description" @@ -3418,7 +3640,7 @@ msgstr "モデルの第一層のラフトと最終ラフト層の隙間。この #: fdmprinter.def.json msgctxt "layer_0_z_overlap label" msgid "Initial Layer Z Overlap" -msgstr "Initial Layer Z Overlap" +msgstr "" #: fdmprinter.def.json msgctxt "layer_0_z_overlap description" @@ -3428,7 +3650,7 @@ msgstr "エアギャップ内で失われたフィラメントを補うために #: fdmprinter.def.json msgctxt "raft_surface_layers label" msgid "Raft Top Layers" -msgstr "Raft Top Layers" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_layers description" @@ -3438,7 +3660,7 @@ msgstr "第2ラフト層の上の最上層の数。これらは、モデルが #: fdmprinter.def.json msgctxt "raft_surface_thickness label" msgid "Raft Top Layer Thickness" -msgstr "Raft Top Layer Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_thickness description" @@ -3448,7 +3670,7 @@ msgstr "トップラフト層の層厚。" #: fdmprinter.def.json msgctxt "raft_surface_line_width label" msgid "Raft Top Line Width" -msgstr "Raft Top Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_width description" @@ -3458,7 +3680,7 @@ msgstr "ラフトの上面の線の幅。これらは細い線で、ラフトの #: fdmprinter.def.json msgctxt "raft_surface_line_spacing label" msgid "Raft Top Spacing" -msgstr "Raft Top Spacing" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_spacing description" @@ -3468,7 +3690,7 @@ msgstr "上のラフト層とラフト線の間の距離。間隔は線の幅と #: fdmprinter.def.json msgctxt "raft_interface_thickness label" msgid "Raft Middle Thickness" -msgstr "Raft Middle Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_thickness description" @@ -3478,7 +3700,7 @@ msgstr "中間のラフト層の層の厚さ。" #: fdmprinter.def.json msgctxt "raft_interface_line_width label" msgid "Raft Middle Line Width" -msgstr "Raft Middle Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_width description" @@ -3488,7 +3710,7 @@ msgstr "中間ラフト層の線の幅。第2層をより押し出すと、ラ #: fdmprinter.def.json msgctxt "raft_interface_line_spacing label" msgid "Raft Middle Spacing" -msgstr "Raft Middle Spacing" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_spacing description" @@ -3498,7 +3720,7 @@ msgstr "中間ラフト層とラフト線の間の距離。中央の間隔はか #: fdmprinter.def.json msgctxt "raft_base_thickness label" msgid "Raft Base Thickness" -msgstr "Raft Base Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_thickness description" @@ -3508,7 +3730,7 @@ msgstr "ベースラフト層の層厚さ。プリンタのビルドプレート #: fdmprinter.def.json msgctxt "raft_base_line_width label" msgid "Raft Base Line Width" -msgstr "Raft Base Line Width" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_width description" @@ -3518,7 +3740,7 @@ msgstr "ベースラフト層の線幅。ビルドプレートの接着のため #: fdmprinter.def.json msgctxt "raft_base_line_spacing label" msgid "Raft Line Spacing" -msgstr "Raft Line Spacing" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_spacing description" @@ -3528,7 +3750,7 @@ msgstr "ベースラフト層のラフトライン間の距離。広い間隔は #: fdmprinter.def.json msgctxt "raft_speed label" msgid "Raft Print Speed" -msgstr "Raft Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_speed description" @@ -3538,7 +3760,7 @@ msgstr "ラフトが印刷される速度。" #: fdmprinter.def.json msgctxt "raft_surface_speed label" msgid "Raft Top Print Speed" -msgstr "Raft Top Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_speed description" @@ -3548,7 +3770,7 @@ msgstr "トップラフト層が印刷される速度。この値はノズルが #: fdmprinter.def.json msgctxt "raft_interface_speed label" msgid "Raft Middle Print Speed" -msgstr "Raft Middle Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_speed description" @@ -3558,7 +3780,7 @@ msgstr "ミドルラフト層が印刷される速度。ノズルから出てく #: fdmprinter.def.json msgctxt "raft_base_speed label" msgid "Raft Base Print Speed" -msgstr "Raft Base Print Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_speed description" @@ -3568,7 +3790,7 @@ msgstr "ベースラフト層が印刷される速度。これは、ノズルか #: fdmprinter.def.json msgctxt "raft_acceleration label" msgid "Raft Print Acceleration" -msgstr "Raft Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "raft_acceleration description" @@ -3578,7 +3800,7 @@ msgstr "ラフト印刷時の加速度。" #: fdmprinter.def.json msgctxt "raft_surface_acceleration label" msgid "Raft Top Print Acceleration" -msgstr "Raft Top Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_acceleration description" @@ -3588,7 +3810,7 @@ msgstr "ラフトのトップ印刷時の加速度" #: fdmprinter.def.json msgctxt "raft_interface_acceleration label" msgid "Raft Middle Print Acceleration" -msgstr "Raft Middle Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_acceleration description" @@ -3598,7 +3820,7 @@ msgstr "ラフトの中間層印刷時の加速度" #: fdmprinter.def.json msgctxt "raft_base_acceleration label" msgid "Raft Base Print Acceleration" -msgstr "Raft Base Print Acceleration" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_acceleration description" @@ -3608,7 +3830,7 @@ msgstr "ラフトの底面印刷時の加速度" #: fdmprinter.def.json msgctxt "raft_jerk label" msgid "Raft Print Jerk" -msgstr "Raft Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "raft_jerk description" @@ -3618,7 +3840,7 @@ msgstr "ラフトが印刷時のジャーク。" #: fdmprinter.def.json msgctxt "raft_surface_jerk label" msgid "Raft Top Print Jerk" -msgstr "Raft Top Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_jerk description" @@ -3628,7 +3850,7 @@ msgstr "トップラフト層印刷時のジャーク" #: fdmprinter.def.json msgctxt "raft_interface_jerk label" msgid "Raft Middle Print Jerk" -msgstr "Raft Middle Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_jerk description" @@ -3638,7 +3860,7 @@ msgstr "ミドルラフト層印刷時のジャーク" #: fdmprinter.def.json msgctxt "raft_base_jerk label" msgid "Raft Base Print Jerk" -msgstr "Raft Base Print Jerk" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_jerk description" @@ -3648,7 +3870,7 @@ msgstr "ベースラフト層印刷時のジャーク" #: fdmprinter.def.json msgctxt "raft_fan_speed label" msgid "Raft Fan Speed" -msgstr "Raft Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_fan_speed description" @@ -3658,7 +3880,7 @@ msgstr "ラフト印刷時のファンの速度。" #: fdmprinter.def.json msgctxt "raft_surface_fan_speed label" msgid "Raft Top Fan Speed" -msgstr "Raft Top Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_fan_speed description" @@ -3668,7 +3890,7 @@ msgstr "トップラフト印刷時のファンの速度。" #: fdmprinter.def.json msgctxt "raft_interface_fan_speed label" msgid "Raft Middle Fan Speed" -msgstr "Raft Middle Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_fan_speed description" @@ -3678,7 +3900,7 @@ msgstr "ミドルラフト印刷時のファンの速度。" #: fdmprinter.def.json msgctxt "raft_base_fan_speed label" msgid "Raft Base Fan Speed" -msgstr "Raft Base Fan Speed" +msgstr "" #: fdmprinter.def.json msgctxt "raft_base_fan_speed description" @@ -3688,7 +3910,7 @@ msgstr "ベースラフト層印刷時のファン速度" #: fdmprinter.def.json msgctxt "dual label" msgid "Dual Extrusion" -msgstr "Dual Extrusion" +msgstr "" #: fdmprinter.def.json msgctxt "dual description" @@ -3698,7 +3920,7 @@ msgstr "デュアルエクストルーダーで印刷するための設定" #: fdmprinter.def.json msgctxt "prime_tower_enable label" msgid "Enable Prime Tower" -msgstr "Enable Prime Tower" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_enable description" @@ -3708,7 +3930,7 @@ msgstr "印刷物の横にタワーを造形して、ノズル交換後にフィ #: fdmprinter.def.json msgctxt "prime_tower_size label" msgid "Prime Tower Size" -msgstr "Prime Tower Size" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_size description" @@ -3718,7 +3940,7 @@ msgstr "プライムタワーの幅。" #: fdmprinter.def.json msgctxt "prime_tower_min_volume label" msgid "Prime Tower Minimum Volume" -msgstr "Prime Tower Minimum Volume" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_min_volume description" @@ -3728,7 +3950,7 @@ msgstr "プライムタワーの各層の最小容積" #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness label" msgid "Prime Tower Thickness" -msgstr "Prime Tower Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness description" @@ -3738,7 +3960,7 @@ msgstr "中空プライムタワーの厚さ。プライムタワーの半分を #: fdmprinter.def.json msgctxt "prime_tower_position_x label" msgid "Prime Tower X Position" -msgstr "Prime Tower X Position" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_x description" @@ -3748,7 +3970,7 @@ msgstr "プライムタワーの位置のx座標。" #: fdmprinter.def.json msgctxt "prime_tower_position_y label" msgid "Prime Tower Y Position" -msgstr "Prime Tower Y Position" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_y description" @@ -3758,7 +3980,7 @@ msgstr "プライムタワーの位置のy座標。" #: fdmprinter.def.json msgctxt "prime_tower_flow label" msgid "Prime Tower Flow" -msgstr "Prime Tower Flow" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_flow description" @@ -3768,7 +3990,7 @@ msgstr "吐出量: マテリアルの吐出量はこの値の乗算で計算さ #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled label" msgid "Wipe Inactive Nozzle on Prime Tower" -msgstr "Wipe Inactive Nozzle on Prime Tower" +msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled description" @@ -3778,7 +4000,7 @@ msgstr "1本のノズルでプライムタワーを印刷した後、もう片 #: fdmprinter.def.json msgctxt "dual_pre_wipe label" msgid "Wipe Nozzle After Switch" -msgstr "Wipe Nozzle After Switch" +msgstr "" #: fdmprinter.def.json msgctxt "dual_pre_wipe description" @@ -3789,16 +4011,17 @@ msgstr "エクストルーダーを切り替えた後、最初に印刷したも msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" msgstr "" +#msgstr "プライムタワーのパージ時のボリューム" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "プライムタワーの上を拭くときにパージするフィラメントの量。パージは、ノズルの不活動時にじみ出たフィラメントを補修するため便利です。" #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" msgid "Enable Ooze Shield" -msgstr "Enable Ooze Shield" +msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_enabled description" @@ -3808,7 +4031,7 @@ msgstr "モデルの周りに壁(ooze shield)を作る。これを生成す #: fdmprinter.def.json msgctxt "ooze_shield_angle label" msgid "Ooze Shield Angle" -msgstr "Ooze Shield Angle" +msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_angle description" @@ -3818,7 +4041,7 @@ msgstr "壁(ooze shield)作成時の最大の角度。 0度は垂直であ #: fdmprinter.def.json msgctxt "ooze_shield_dist label" msgid "Ooze Shield Distance" -msgstr "Ooze Shield Distance" +msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_dist description" @@ -3828,17 +4051,17 @@ msgstr "壁(ooze shield)の造形物からの距離" #: fdmprinter.def.json msgctxt "meshfix label" msgid "Mesh Fixes" -msgstr "Mesh Fixes" +msgstr "" #: fdmprinter.def.json msgctxt "meshfix description" msgid "category_fixes" -msgstr "category_fixes" +msgstr "カテゴリー_メッシュ修正" #: fdmprinter.def.json msgctxt "meshfix_union_all label" msgid "Union Overlapping Volumes" -msgstr "Union Overlapping Volumes" +msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all description" @@ -3848,7 +4071,7 @@ msgstr "メッシュ内の重なり合うボリュームから生じる内部ジ #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes label" msgid "Remove All Holes" -msgstr "Remove All Holes" +msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes description" @@ -3858,7 +4081,7 @@ msgstr "各レイヤーの穴を消し、外形のみを保持します。これ #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching label" msgid "Extensive Stitching" -msgstr "Extensive Stitching" +msgstr "" #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching description" @@ -3868,7 +4091,7 @@ msgstr "強めのスティッチングは、穴をメッシュで塞いでデー #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons label" msgid "Keep Disconnected Faces" -msgstr "Keep Disconnected Faces" +msgstr "" #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons description" @@ -3878,7 +4101,7 @@ msgstr "通常、Curaはメッシュ内の小さな穴をスティッチし、 #: fdmprinter.def.json msgctxt "multiple_mesh_overlap label" msgid "Merged Meshes Overlap" -msgstr "Merged Meshes Overlap" +msgstr "" #: fdmprinter.def.json msgctxt "multiple_mesh_overlap description" @@ -3888,7 +4111,7 @@ msgstr "触れているメッシュを少し重ねてください。これによ #: fdmprinter.def.json msgctxt "carve_multiple_volumes label" msgid "Remove Mesh Intersection" -msgstr "Remove Mesh Intersection" +msgstr "" #: fdmprinter.def.json msgctxt "carve_multiple_volumes description" @@ -3898,7 +4121,7 @@ msgstr "複数のメッシュが重なっている領域を削除します。こ #: fdmprinter.def.json msgctxt "alternate_carve_order label" msgid "Alternate Mesh Removal" -msgstr "Alternate Mesh Removal" +msgstr "" #: fdmprinter.def.json msgctxt "alternate_carve_order description" @@ -3908,17 +4131,17 @@ msgstr "交差するメッシュがどのレイヤーに属しているかを切 #: fdmprinter.def.json msgctxt "blackmagic label" msgid "Special Modes" -msgstr "Special Modes" +msgstr "" #: fdmprinter.def.json msgctxt "blackmagic description" msgid "category_blackmagic" -msgstr "category_blackmagic" +msgstr "カテゴリー_ブラックマジック" #: fdmprinter.def.json msgctxt "print_sequence label" msgid "Print Sequence" -msgstr "Print Sequence" +msgstr "" #: fdmprinter.def.json msgctxt "print_sequence description" @@ -3928,17 +4151,17 @@ msgstr "すべてのモデルをレイヤーごとに印刷するか、1つの #: fdmprinter.def.json msgctxt "print_sequence option all_at_once" msgid "All at Once" -msgstr "All at Once" +msgstr "" #: fdmprinter.def.json msgctxt "print_sequence option one_at_a_time" msgid "One at a Time" -msgstr "One at a Time" +msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh label" msgid "Infill Mesh" -msgstr "Infill Mesh" +msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh description" @@ -3948,7 +4171,7 @@ msgstr "このメッシュを使用して、重なる他のメッシュのイン #: fdmprinter.def.json msgctxt "infill_mesh_order label" msgid "Infill Mesh Order" -msgstr "Infill Mesh Order" +msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh_order description" @@ -3959,6 +4182,7 @@ msgstr "他のインフィルメッシュのインフィル内にあるインフ msgctxt "cutting_mesh label" msgid "Cutting Mesh" msgstr "" +#msgstr "メッシュの切断" #: fdmprinter.def.json msgctxt "cutting_mesh description" @@ -3969,6 +4193,7 @@ msgstr "このメッシュの大きさをを他のメッシュ内に制限しま msgctxt "mold_enabled label" msgid "Mold" msgstr "" +#msgstr "モールド" #: fdmprinter.def.json msgctxt "mold_enabled description" @@ -3979,6 +4204,7 @@ msgstr "型を取るため印刷し、ビルドプレート上の同じような msgctxt "mold_width label" msgid "Minimal Mold Width" msgstr "" +#msgstr "最小のモールド幅" #: fdmprinter.def.json msgctxt "mold_width description" @@ -3989,6 +4215,7 @@ msgstr "型用とモデルの外側の最短距離。" msgctxt "mold_roof_height label" msgid "Mold Roof Height" msgstr "" +#msgstr "モールドの屋根の高さ" #: fdmprinter.def.json msgctxt "mold_roof_height description" @@ -3999,6 +4226,7 @@ msgstr "型を印刷するためのモデルの水平部分上の高さ。" msgctxt "mold_angle label" msgid "Mold Angle" msgstr "" +#msgstr "モールドの角度" #: fdmprinter.def.json msgctxt "mold_angle description" @@ -4008,7 +4236,7 @@ msgstr "型の外側の壁のオーバーハングの角度です。0度にす #: fdmprinter.def.json msgctxt "support_mesh label" msgid "Support Mesh" -msgstr "Support Mesh" +msgstr "" #: fdmprinter.def.json msgctxt "support_mesh description" @@ -4019,6 +4247,7 @@ msgstr "このメッシュを使用してサポート領域を指定します。 msgctxt "support_mesh_drop_down label" msgid "Drop Down Support Mesh" msgstr "" +#msgstr "ドロップダウンサポートメッシュ" #: fdmprinter.def.json msgctxt "support_mesh_drop_down description" @@ -4028,7 +4257,7 @@ msgstr "サポートメッシュの下のサポート材を全箇所に作りま #: fdmprinter.def.json msgctxt "anti_overhang_mesh label" msgid "Anti Overhang Mesh" -msgstr "Anti Overhang Mesh" +msgstr "" #: fdmprinter.def.json msgctxt "anti_overhang_mesh description" @@ -4038,7 +4267,7 @@ msgstr "このメッシュを使用して、モデルのどの部分をオーバ #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode label" msgid "Surface Mode" -msgstr "Surface Mode" +msgstr "" #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode description" @@ -4048,22 +4277,22 @@ msgstr "モデルを表面のみ、ボリューム、または緩い表面のボ #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode option normal" msgid "Normal" -msgstr "Normal" +msgstr "" #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode option surface" msgid "Surface" -msgstr "Surface" +msgstr "" #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode option both" msgid "Both" -msgstr "Both" +msgstr "" #: fdmprinter.def.json msgctxt "magic_spiralize label" msgid "Spiralize Outer Contour" -msgstr "Spiralize Outer Contour" +msgstr "" #: fdmprinter.def.json msgctxt "magic_spiralize description" @@ -4074,26 +4303,49 @@ msgstr "Z軸の外側のエッジの動きを滑らかにします。全体の msgctxt "smooth_spiralized_contours label" msgid "Smooth Spiralized Contours" msgstr "" +#msgstr "滑らかならせん状の輪郭" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "らせん状の輪郭を滑らかにしてZシームの視認性を低下させます(Zシームは印刷物上でほとんどみえませんが、レイヤービューでは確認できます。)スムージングは​​細かいサーフェスの詳細をぼかす傾向があることに注意してください。" +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "" +#msgstr "相対エクストルージョン" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "絶対押出ではなく、相対押出を使用します。相対Eステップを使用すると、Gcodeの後処理が容易になります。ただし、すべてのプリンタでサポートされているわけではありません。絶対的Eステップと比較して、材料の量にごくわずかな偏差が生じることがあります。この設定に関係なく、Gcodeスクリプトが出力される前にエクストルーダーのモードは常に絶対値にて設定されています。" + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" -msgstr "Experimental" +msgstr "" #: fdmprinter.def.json msgctxt "experimental description" msgid "experimental!" msgstr "実験的" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "" +#msgstr "壁のプリントの順番を最適化する" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "撤回と移動距離を減らすために、壁のプリント順序を最適化します。ほとんどの部品がこの設定を有効にしている方が良い印刷結果につながりますが、実際には時間がかかることがありますので、最適化の有無に関わらず印刷時間を比較してください。" + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" -msgstr "Enable Draft Shield" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_enabled description" @@ -4103,7 +4355,7 @@ msgstr "これにより、モデルの周囲に壁ができ、熱を閉じ込め #: fdmprinter.def.json msgctxt "draft_shield_dist label" msgid "Draft Shield X/Y Distance" -msgstr "Draft Shield X/Y Distance" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_dist description" @@ -4113,7 +4365,7 @@ msgstr "ドラフトシールドと造形物のX / Y方向の距離" #: fdmprinter.def.json msgctxt "draft_shield_height_limitation label" msgid "Draft Shield Limitation" -msgstr "Draft Shield Limitation" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height_limitation description" @@ -4123,17 +4375,17 @@ msgstr "ドラフトシールドの高さを設定します。ドラフトシー #: fdmprinter.def.json msgctxt "draft_shield_height_limitation option full" msgid "Full" -msgstr "Full" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height_limitation option limited" msgid "Limited" -msgstr "Limited" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height label" msgid "Draft Shield Height" -msgstr "Draft Shield Height" +msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height description" @@ -4143,7 +4395,7 @@ msgstr "ドラフトシールドの高さ制限。この高さを超えるとド #: fdmprinter.def.json msgctxt "conical_overhang_enabled label" msgid "Make Overhang Printable" -msgstr "Make Overhang Printable" +msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_enabled description" @@ -4153,7 +4405,7 @@ msgstr "最小限のサポートが必要となるように印刷モデルのジ #: fdmprinter.def.json msgctxt "conical_overhang_angle label" msgid "Maximum Model Angle" -msgstr "Maximum Model Angle" +msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_angle description" @@ -4163,7 +4415,7 @@ msgstr "印刷可能になったオーバーハングの最大角度。 0°の #: fdmprinter.def.json msgctxt "coasting_enable label" msgid "Enable Coasting" -msgstr "Enable Coasting" +msgstr "" #: fdmprinter.def.json msgctxt "coasting_enable description" @@ -4173,7 +4425,7 @@ msgstr "コースティングは、それぞれの造形ラインの最後の部 #: fdmprinter.def.json msgctxt "coasting_volume label" msgid "Coasting Volume" -msgstr "Coasting Volume" +msgstr "" #: fdmprinter.def.json msgctxt "coasting_volume description" @@ -4183,7 +4435,7 @@ msgstr "はみ出るフィラメントのボリューム。この値は、一般 #: fdmprinter.def.json msgctxt "coasting_min_volume label" msgid "Minimum Volume Before Coasting" -msgstr "Minimum Volume Before Coasting" +msgstr "" #: fdmprinter.def.json msgctxt "coasting_min_volume description" @@ -4193,37 +4445,50 @@ msgstr "コースティングに必要な最小の容積。より小さい押出 #: fdmprinter.def.json msgctxt "coasting_speed label" msgid "Coasting Speed" -msgstr "Coasting Speed" +msgstr "" #: fdmprinter.def.json msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "コースティング中の移動速度。印刷時の経路の速度設定に比例します。ボーデンチューブの圧力が低下するので、100%よりわずかに低い値が推奨される。" -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Extra Skin Wall Count" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "上部/下部パターンの最も外側の部分を同心円の線で置き換えます。 1つまたは2つの線を使用すると、トップ部分の造形が改善されます。" - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" -msgstr "Alternate Skin Rotation" +msgstr "" #: fdmprinter.def.json msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "トップ/ボトムのレイヤーが印刷される方向を変更します。通常、それらは斜めに印刷されます。この設定では、X方向のみとY方向のみが追加されます。" +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "" +#msgstr "クロス3Dポケットサイズ" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "四方でクロス3Dパターンが交差するポケットの大きさはそのパターンが触れている高さ。" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "" +#msgstr "クロス3Dポケットと交差させる" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "四方がクロスする、クロス3Dパターン交差時には半分のみポケットを適用し、パターンが接触している高さとポケットの位置にて交互します。" + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" msgstr "" +#msgstr "スパゲッティ・インフィル" #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled description" @@ -4234,16 +4499,18 @@ msgstr "時々インフィルを印刷してください、オブジェクト内 msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" msgstr "" +#msgstr "スパゲッティのインフィルステッピング" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "スパゲッティインフィルをプリントするか印刷の最後に全てのインフィルフィラメントを押し出すか" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" msgid "Spaghetti Maximum Infill Angle" msgstr "" +#msgstr "スパゲッティの最大のインフィルの角度" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" @@ -4254,6 +4521,7 @@ msgstr "最大角度 w.r.t.-印刷範囲内がスパゲッティ・インフィ msgctxt "spaghetti_max_height label" msgid "Spaghetti Infill Maximum Height" msgstr "" +#msgstr "スパゲッティインフィルの最大高さ" #: fdmprinter.def.json msgctxt "spaghetti_max_height description" @@ -4264,6 +4532,7 @@ msgstr "内部空間の上から結合して埋め込むことができる最大 msgctxt "spaghetti_inset label" msgid "Spaghetti Inset" msgstr "" +#msgstr "スパゲティをセットする" #: fdmprinter.def.json msgctxt "spaghetti_inset description" @@ -4274,6 +4543,7 @@ msgstr "スパゲッティ・インフィルがプリントされる壁からの msgctxt "spaghetti_flow label" msgid "Spaghetti Flow" msgstr "" +#msgstr "スパゲッティのフロー" #: fdmprinter.def.json msgctxt "spaghetti_flow description" @@ -4284,16 +4554,17 @@ msgstr "スパゲッティ・インフィルの密度を調整します。イン msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" msgstr "" +#msgstr "スパゲッティ・インフィルの余分量" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "スパゲッティをプリントする際に毎回行なう吐出量の調整" #: fdmprinter.def.json msgctxt "support_conical_enabled label" msgid "Enable Conical Support" -msgstr "Enable Conical Support" +msgstr "" #: fdmprinter.def.json msgctxt "support_conical_enabled description" @@ -4303,7 +4574,7 @@ msgstr "実験的機能:オーバーハング部分よりも底面のサポー #: fdmprinter.def.json msgctxt "support_conical_angle label" msgid "Conical Support Angle" -msgstr "Conical Support Angle" +msgstr "" #: fdmprinter.def.json msgctxt "support_conical_angle description" @@ -4313,7 +4584,7 @@ msgstr "円錐形のサポートの傾きの角度。 0度は垂直であり、9 #: fdmprinter.def.json msgctxt "support_conical_min_width label" msgid "Conical Support Minimum Width" -msgstr "Conical Support Minimum Width" +msgstr "" #: fdmprinter.def.json msgctxt "support_conical_min_width description" @@ -4323,7 +4594,7 @@ msgstr "円錐形のサポート領域のベースが縮小される最小幅。 #: fdmprinter.def.json msgctxt "infill_hollow label" msgid "Hollow Out Objects" -msgstr "Hollow Out Objects" +msgstr "" #: fdmprinter.def.json msgctxt "infill_hollow description" @@ -4333,7 +4604,7 @@ msgstr "すべてのインフィルを取り除き、オブジェクトの内部 #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled label" msgid "Fuzzy Skin" -msgstr "Fuzzy Skin" +msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled description" @@ -4343,7 +4614,7 @@ msgstr "外壁を印刷する際に振動が起こり、表面が粗くてぼや #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness label" msgid "Fuzzy Skin Thickness" -msgstr "Fuzzy Skin Thickness" +msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness description" @@ -4353,7 +4624,7 @@ msgstr "振動が起こる幅。内壁は変更されていないので、これ #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density label" msgid "Fuzzy Skin Density" -msgstr "Fuzzy Skin Density" +msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density description" @@ -4363,7 +4634,7 @@ msgstr "レイヤー内の各ポリゴンに導入されたポイントの平均 #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist label" msgid "Fuzzy Skin Point Distance" -msgstr "Fuzzy Skin Point Distance" +msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist description" @@ -4373,7 +4644,7 @@ msgstr "各線分に導入されたランダム点間の平均距離。ポリゴ #: fdmprinter.def.json msgctxt "wireframe_enabled label" msgid "Wire Printing" -msgstr "Wire Printing" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_enabled description" @@ -4383,7 +4654,7 @@ msgstr "薄い空気中に印刷し、疎なウエブ構造で外面のみを印 #: fdmprinter.def.json msgctxt "wireframe_height label" msgid "WP Connection Height" -msgstr "WP Connection Height" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_height description" @@ -4393,7 +4664,7 @@ msgstr "2つの水平なパーツ間の、上向きおよび斜め下向きの #: fdmprinter.def.json msgctxt "wireframe_roof_inset label" msgid "WP Roof Inset Distance" -msgstr "WP Roof Inset Distance" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_inset description" @@ -4403,7 +4674,7 @@ msgstr "ルーフから内側に輪郭を描くときの距離。ワイヤ印刷 #: fdmprinter.def.json msgctxt "wireframe_printspeed label" msgid "WP Speed" -msgstr "WP Speed" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed description" @@ -4413,7 +4684,7 @@ msgstr "マテリアルを押し出すときにノズルが動く速度。ワイ #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom label" msgid "WP Bottom Printing Speed" -msgstr "WP Bottom Printing Speed" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom description" @@ -4423,7 +4694,7 @@ msgstr "ブルドプラットフォームに接触する第1層の印刷速度 #: fdmprinter.def.json msgctxt "wireframe_printspeed_up label" msgid "WP Upward Printing Speed" -msgstr "WP Upward Printing Speed" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_up description" @@ -4433,7 +4704,7 @@ msgstr "薄い空気の中で上向きに線を印刷する速度。ワイヤ印 #: fdmprinter.def.json msgctxt "wireframe_printspeed_down label" msgid "WP Downward Printing Speed" -msgstr "WP Downward Printing Speed" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_down description" @@ -4443,7 +4714,7 @@ msgstr "斜め下方に線を印刷する速度。ワイヤ印刷のみに適用 #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat label" msgid "WP Horizontal Printing Speed" -msgstr "WP Horizontal Printing Speed" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat description" @@ -4453,7 +4724,7 @@ msgstr "モデルの水平輪郭を印刷する速度。ワイヤ印刷のみに #: fdmprinter.def.json msgctxt "wireframe_flow label" msgid "WP Flow" -msgstr "WP Flow" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow description" @@ -4463,7 +4734,7 @@ msgstr "流れ補正:押出されたマテリアルの量はこの値の乗算 #: fdmprinter.def.json msgctxt "wireframe_flow_connection label" msgid "WP Connection Flow" -msgstr "WP Connection Flow" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_connection description" @@ -4473,7 +4744,7 @@ msgstr "上下に動くときの吐出補正。ワイヤ印刷のみに適用さ #: fdmprinter.def.json msgctxt "wireframe_flow_flat label" msgid "WP Flat Flow" -msgstr "WP Flat Flow" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_flat description" @@ -4483,7 +4754,7 @@ msgstr "フラットラインを印刷する際の吐出補正。ワイヤ印刷 #: fdmprinter.def.json msgctxt "wireframe_top_delay label" msgid "WP Top Delay" -msgstr "WP Top Delay" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_delay description" @@ -4493,7 +4764,7 @@ msgstr "上向きの線が硬くなるように、上向きの動きの後の時 #: fdmprinter.def.json msgctxt "wireframe_bottom_delay label" msgid "WP Bottom Delay" -msgstr "WP Bottom Delay" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_bottom_delay description" @@ -4503,7 +4774,7 @@ msgstr "下降後の遅延時間。ワイヤ印刷のみに適用されます。 #: fdmprinter.def.json msgctxt "wireframe_flat_delay label" msgid "WP Flat Delay" -msgstr "WP Flat Delay" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flat_delay description" @@ -4513,7 +4784,7 @@ msgstr "2つの水平セグメント間の遅延時間。このような遅延 #: fdmprinter.def.json msgctxt "wireframe_up_half_speed label" msgid "WP Ease Upward" -msgstr "WP Ease Upward" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_up_half_speed description" @@ -4525,7 +4796,7 @@ msgstr "半分の速度で押出される上方への移動距離。過度にマ #: fdmprinter.def.json msgctxt "wireframe_top_jump label" msgid "WP Knot Size" -msgstr "WP Knot Size" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_jump description" @@ -4535,7 +4806,7 @@ msgstr "上向きの線の上端に小さな結び目を作成し、連続する #: fdmprinter.def.json msgctxt "wireframe_fall_down label" msgid "WP Fall Down" -msgstr "WP Fall Down" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_fall_down description" @@ -4545,7 +4816,7 @@ msgstr "上向き押出後にマテリアルが落下する距離。この距離 #: fdmprinter.def.json msgctxt "wireframe_drag_along label" msgid "WP Drag Along" -msgstr "WP Drag Along" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_drag_along description" @@ -4555,7 +4826,7 @@ msgstr "斜め下方への押出に伴い上向き押出しているマテリア #: fdmprinter.def.json msgctxt "wireframe_strategy label" msgid "WP Strategy" -msgstr "WP Strategy" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_strategy description" @@ -4565,22 +4836,22 @@ msgstr "各接続ポイントで2つの連続したレイヤーが密着して #: fdmprinter.def.json msgctxt "wireframe_strategy option compensate" msgid "Compensate" -msgstr "Compensate" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_strategy option knot" msgid "Knot" -msgstr "Knot" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_strategy option retract" msgid "Retract" -msgstr "Retract" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_straight_before_down label" msgid "WP Straighten Downward Lines" -msgstr "WP Straighten Downward Lines" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_straight_before_down description" @@ -4590,7 +4861,7 @@ msgstr "水平方向の直線部分で覆われた斜めに下降線の割合で #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down label" msgid "WP Roof Fall Down" -msgstr "WP Roof Fall Down" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down description" @@ -4600,7 +4871,7 @@ msgstr "水平ルーフが ”薄い空気”に印刷され落ちる距離。 #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along label" msgid "WP Roof Drag Along" -msgstr "WP Roof Drag Along" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along description" @@ -4610,7 +4881,7 @@ msgstr "ルーフの外側の輪郭に戻る際に引きずる内側ラインの #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay label" msgid "WP Roof Outer Delay" -msgstr "WP Roof Outer Delay" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay description" @@ -4620,7 +4891,7 @@ msgstr "トップレイヤーにある穴の外側に掛ける時間。長い時 #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance label" msgid "WP Nozzle Clearance" -msgstr "WP Nozzle Clearance" +msgstr "" #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance description" @@ -4631,66 +4902,117 @@ msgstr "ノズルと水平方向に下向きの線間の距離。大きな隙間 msgctxt "ironing_enabled label" msgid "Enable Ironing" msgstr "" +#msgstr "アイロンを有効にする" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." +msgstr "ノズルから吐出せずに上部表面を再度動く機能。表面を溶かしてよりスムースにします。" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" msgstr "" +#msgstr "上層のみアイロンをかけます" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "メッシュの最後のレイヤーでのみアイロンをかけます。下層にて滑らかな表面仕上げを必要としない場合、時間を節約します。" #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" msgstr "" +#msgstr "アイロン時のパターン" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "アイロンのパターン" #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" msgstr "" +#msgstr "アイロンラインの線隔" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "アイロンライン同士の距離" #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" msgstr "" +#msgstr "アイロン時のフロー" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "アイロン時にノズルから出しておくフィラメントの量。多少出しておくと裂け目を綺麗にします。ただ出し過ぎると吐出過多になり、端が荒れます。" #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" msgstr "" +#msgstr "アイロンを挿入する" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." +msgstr "モデルの端からの距離。端までアイロンをすると、端が荒れる場合があります。" + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" msgstr "" +#msgstr "アイロン時のスピード" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "上部表面通過時の速度" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "" +#msgstr "アイロン時の加速" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "アイロン時の加速度" + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "" +#msgstr "ジャークをアイロンする" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "アイロン時の最大加速度" #: fdmprinter.def.json msgctxt "command_line_settings label" msgid "Command Line Settings" -msgstr "Command Line Settings" +msgstr "" #: fdmprinter.def.json msgctxt "command_line_settings description" @@ -4700,7 +5022,7 @@ msgstr "CuraエンジンがCuraフロントエンドから呼び出されない #: fdmprinter.def.json msgctxt "center_object label" msgid "Center object" -msgstr "Center object" +msgstr "" #: fdmprinter.def.json msgctxt "center_object description" @@ -4710,7 +5032,7 @@ msgstr "オブジェクトが保存された座標系を使用する代わりに #: fdmprinter.def.json msgctxt "mesh_position_x label" msgid "Mesh position x" -msgstr "Mesh position x" +msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_x description" @@ -4720,7 +5042,7 @@ msgstr "オブジェクトの x 方向に適用されたオフセット。" #: fdmprinter.def.json msgctxt "mesh_position_y label" msgid "Mesh position y" -msgstr "Mesh position y" +msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_y description" @@ -4730,7 +5052,7 @@ msgstr "オブジェクトのY 方向適用されたオフセット。" #: fdmprinter.def.json msgctxt "mesh_position_z label" msgid "Mesh position z" -msgstr "Mesh position z" +msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_z description" @@ -4740,13 +5062,53 @@ msgstr "オブジェクトの z 方向に適用されたオフセット。この #: fdmprinter.def.json msgctxt "mesh_rotation_matrix label" msgid "Mesh Rotation Matrix" -msgstr "Mesh Rotation Matrix" +msgstr "" #: fdmprinter.def.json msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "ファイルから読み込むときに、モデルに適用するトランスフォーメーションマトリックス。" +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "壁造形用のエクストルーダー。デュアルノズル印刷時に使用。" + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "印刷物のインフィルのパターン。ラインとジグザグのインフィルは交互のレイヤー方向をずらし、材料費を削減します。グリッド、三角形、キュービック、四面体、同心円のパターンは、各レイヤーに完全に印刷されます。立方体および四面体のインフィルは各層ごとに変化し、各方向に沿ってより均等な強度分布を提供する。" + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "平らな面の上部または底部のスキン部の及びその領域を展開します。既定では、スキンインフィルの周りの壁の線で停止しますが、これはインフィル密度が低いときに現れる穴につながることがあります。この設定は、次の層の面材が皮膚にかかっているので、壁の線を超えてスキンを拡張します。" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "インフィルをトップの面部分 (空気に触れる領域) を広げることで、上のインフィルを支えます。" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "下面(下に空気がある領域)を拡大して、上と下のインフィルによって支えるようにします。" + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "スキンがインフィルに展開される距離。デフォルトの距離は、インフィルの密度が低いときにスキンに現れる穴とインフィルの行間とギャップを埋めるのにに十分です。大抵の場合、距離は小さくても問題ありません。" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "サポートを取りやすくするため、一部のジグザグ造形をスキップする" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "サポートを取りやすくするため、この値毎のラインと壁の接続をスキップする" + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "プリンターのバリエーションを表示する" @@ -4797,7 +5159,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "machine_gcode_flavor option RepRap (Volumatric)" #~ msgid "RepRap (Volumetric)" -#~ msgstr "RepRap (Volumetric)" +#~ msgstr "" #~ msgctxt "wall_thickness description" #~ msgid "The thickness of the outside walls in the horizontal direction. This value divided by the wall line width defines the number of walls." @@ -4813,7 +5175,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "sub_div_rad_mult label" #~ msgid "Cubic Subdivision Radius" -#~ msgstr "Cubic Subdivision Radius" +#~ msgstr "" #~ msgctxt "sub_div_rad_mult description" #~ msgid "A multiplier on the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to more subdivisions, i.e. more small cubes." @@ -4821,7 +5183,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "expand_upper_skins label" #~ msgid "Expand Upper Skins" -#~ msgstr "Expand Upper Skins" +#~ msgstr "" #~ msgctxt "expand_upper_skins description" #~ msgid "Expand upper skin areas (areas with air above) so that they support infill above." @@ -4829,7 +5191,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "expand_lower_skins label" #~ msgid "Expand Lower Skins" -#~ msgstr "Expand Lower Skins" +#~ msgstr "" #~ msgctxt "expand_lower_skins description" #~ msgid "Expand lower skin areas (areas with air below) so that they are anchored by the infill layers above and below." @@ -4849,7 +5211,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "support_enable label" #~ msgid "Enable Support" -#~ msgstr "Enable Support" +#~ msgstr "" #~ msgctxt "support_enable description" #~ msgid "Enable support structures. These structures support parts of the model with severe overhangs." @@ -4865,7 +5227,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "support_bottom_height label" #~ msgid "Support Bottom Thickness" -#~ msgstr "Support Bottom Thickness" +#~ msgstr "" #~ msgctxt "support_bottom_height description" #~ msgid "The thickness of the support bottoms. This controls the number of dense layers are printed on top of places of a model on which support rests." @@ -4881,7 +5243,7 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "support_interface_line_distance label" #~ msgid "Support Interface Line Distance" -#~ msgstr "Support Interface Line Distance" +#~ msgstr "" #~ msgctxt "support_interface_line_distance description" #~ msgid "Distance between the printed support interface lines. This setting is calculated by the Support Interface Density, but can be adjusted separately." diff --git a/resources/i18n/jp/cura.po b/resources/i18n/jp/cura.po deleted file mode 100644 index abbb692beb..0000000000 --- a/resources/i18n/jp/cura.po +++ /dev/null @@ -1,4185 +0,0 @@ -# Cura -# Copyright (C) 2017 Ultimaker -# This file is distributed under the same license as the Cura package. -# Ruben Dulek , 2017. -# -msgid "" -msgstr "" -"Project-Id-Version: Cura 2.7\n" -"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" -"POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0200\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: Japanese\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ja\n" -"Country-Code: JP\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 -msgctxt "@action" -msgid "Machine Settings" -msgstr "Machine Settings" - -#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 -msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "X-Ray" - -#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "X3D File" -msgstr "X3D File" - -#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:16 -msgctxt "@item:inlistbox" -msgid "GCode File" -msgstr "GCode File" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "G-Codeを承認し、Wifi上でDoodle3D WiFi-Boxに送る." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D printing" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 -msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 -msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Print with " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Enable Scan devices..." - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 -msgctxt "@item:inmenu" -msgid "Show Changelog" -msgstr "Show Changelog" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 -msgctxt "@item:inmenu" -msgid "Flatten active settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 -msgctxt "@info:status" -msgid "Profile has been flattened & activated." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 -msgctxt "@item:inmenu" -msgid "USB printing" -msgstr "USB printing" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:27 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print via USB" -msgstr "Print via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:28 -msgctxt "@info:tooltip" -msgid "Print via USB" -msgstr "Print via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:30 -msgctxt "@info:status" -msgid "Connected via USB" -msgstr "Connected via USB" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer is busy or not connected." -msgstr "Unable to start a new job because the printer is busy or not connected." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 -msgctxt "@info:status" -msgid "This printer does not support USB printing because it uses UltiGCode flavor." -msgstr "This printer does not support USB printing because it uses UltiGCode flavor." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer does not support usb printing." -msgstr "Unable to start a new job because the printer does not support usb printing." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 -msgctxt "@info" -msgid "Unable to update firmware because there are no printers connected." -msgstr "Unable to update firmware because there are no printers connected." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 -#, python-format -msgctxt "@info" -msgid "Could not find firmware required for the printer at %s." -msgstr "Could not find firmware required for the printer at %s." - -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G File" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Save to Removable Drive" -msgstr "Save to Removable Drive" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:24 -#, python-brace-format -msgctxt "@item:inlistbox" -msgid "Save to Removable Drive {0}" -msgstr "Save to Removable Drive {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 -#, python-brace-format -msgctxt "@info:progress" -msgid "Saving to Removable Drive {0}" -msgstr "Saving to Removable Drive {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to {0}: {1}" -msgstr "Could not save to {0}: {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 -#, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Saved to Removable Drive {0} as {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Eject" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Eject removable device {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to removable drive {0}: {1}" -msgstr "Could not save to removable drive {0}: {1}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Ejected {0}. You can now safely remove the drive." -msgstr "Ejected {0}. You can now safely remove the drive." - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to eject {0}. Another program may be using the drive." -msgstr "Failed to eject {0}. Another program may be using the drive." - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py:68 -msgctxt "@item:intext" -msgid "Removable Drive" -msgstr "Removable Drive" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print over network" -msgstr "Print over network" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 -msgctxt "@properties:tooltip" -msgid "Print over network" -msgstr "Print over network" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 -msgctxt "@info:status" -msgid "Access to the printer requested. Please approve the request on the printer" -msgstr "Access to the printer requested. Please approve the request on the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 -msgctxt "@info:status" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@action:button" -msgid "Retry" -msgstr "Retry" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@info:tooltip" -msgid "Re-send the access request" -msgstr "Re-send the access request" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 -msgctxt "@info:status" -msgid "Access to the printer accepted" -msgstr "Access to the printer accepted" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 -msgctxt "@info:status" -msgid "No access to print with this printer. Unable to send print job." -msgstr "No access to print with this printer. Unable to send print job." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 -msgctxt "@action:button" -msgid "Request Access" -msgstr "Request Access" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 -msgctxt "@info:tooltip" -msgid "Send access request to the printer" -msgstr "Send access request to the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 -msgctxt "@info:status" -msgid "Connected over the network. Please approve the access request on the printer." -msgstr "Connected over the network. Please approve the access request on the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 -msgctxt "@info:status" -msgid "Connected over the network." -msgstr "Connected over the network." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 -msgctxt "@info:status" -msgid "Connected over the network. No access to control the printer." -msgstr "Connected over the network. No access to control the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 -msgctxt "@info:status" -msgid "Access request was denied on the printer." -msgstr "Access request was denied on the printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 -msgctxt "@info:status" -msgid "Access request failed due to a timeout." -msgstr "Access request failed due to a timeout." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 -msgctxt "@info:status" -msgid "The connection with the network was lost." -msgstr "The connection with the network was lost." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 -msgctxt "@info:status" -msgid "The connection with the printer was lost. Check your printer to see if it is connected." -msgstr "The connection with the printer was lost. Check your printer to see if it is connected." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 -#, python-format -msgctxt "@info:status" -msgid "Unable to start a new print job, printer is busy. Current printer status is %s." -msgstr "Unable to start a new print job, printer is busy. Current printer status is %s." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No Printcore loaded in slot {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No material loaded in slot {0}" -msgstr "Unable to start a new print job. No material loaded in slot {0}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 -#, python-brace-format -msgctxt "@label" -msgid "Not enough material for spool {0}." -msgstr "Not enough material for spool {0}." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 -#, python-brace-format -msgctxt "@label" -msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 -#, python-brace-format -msgctxt "@label" -msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 -#, python-brace-format -msgctxt "@label" -msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 -msgctxt "@label" -msgid "Are you sure you wish to print with the selected configuration?" -msgstr "Are you sure you wish to print with the selected configuration?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 -msgctxt "@label" -msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 -msgctxt "@window:title" -msgid "Mismatched configuration" -msgstr "Mismatched configuration" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 -msgctxt "@info:status" -msgid "Sending data to printer" -msgstr "Sending data to printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 -msgctxt "@info:status" -msgid "Unable to send data to printer. Is another job still active?" -msgstr "Unable to send data to printer. Is another job still active?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 -msgctxt "@label:MonitorStatus" -msgid "Aborting print..." -msgstr "Aborting print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 -msgctxt "@label:MonitorStatus" -msgid "Print aborted. Please check the printer" -msgstr "Print aborted. Please check the printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 -msgctxt "@label:MonitorStatus" -msgid "Pausing print..." -msgstr "Pausing print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 -msgctxt "@label:MonitorStatus" -msgid "Resuming print..." -msgstr "Resuming print..." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 -msgctxt "@window:title" -msgid "Sync with your printer" -msgstr "Sync with your printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 -msgctxt "@label" -msgid "Would you like to use your current printer configuration in Cura?" -msgstr "Would you like to use your current printer configuration in Cura?" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 -msgctxt "@label" -msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 -msgctxt "@action" -msgid "Connect via Network" -msgstr "Connect via Network" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 -msgctxt "@info:status" -msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 -msgctxt "@item:inlistbox" -msgid "SolidWorks part file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 -msgctxt "@item:inlistbox" -msgid "SolidWorks assembly file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 -msgid "Configure" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 -#, python-format -msgctxt "@info:status" -msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 -msgid "Modify G-Code" -msgstr "Modify G-Code" - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 -msgctxt "@info" -msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 -msgctxt "@action:button" -msgid "Dismiss" -msgstr "Dismiss" - -#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura 15.04 profiles" -msgstr "Cura 15.04 profiles" - -#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "G-code File" -msgstr "G-code File" - -#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 -msgctxt "@info:status" -msgid "Cura does not accurately display layers when Wire Printing is enabled" -msgstr "Cura does not accurately display layers when Wire Printing is enabled" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "JPG Image" -msgstr "JPG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "JPEG Image" -msgstr "JPEG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:22 -msgctxt "@item:inlistbox" -msgid "PNG Image" -msgstr "PNG Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:26 -msgctxt "@item:inlistbox" -msgid "BMP Image" -msgstr "BMP Image" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "GIF Image" -msgstr "GIF Image" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 -msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "The selected material is incompatible with the selected machine or configuration." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to slice with the current settings. The following settings have errors: {0}" -msgstr "Unable to slice with the current settings. The following settings have errors: {0}" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 -msgctxt "@info:status" -msgid "Unable to slice because the prime tower or prime position(s) are invalid." -msgstr "Unable to slice because the prime tower or prime position(s) are invalid." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 -msgctxt "@info:status" -msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." -msgstr "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:65 -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 -msgctxt "@info:status" -msgid "Processing Layers" -msgstr "Processing Layers" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 -msgctxt "@label" -msgid "Per Model Settings" -msgstr "Per Model Settings" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:15 -msgctxt "@info:tooltip" -msgid "Configure Per Model Settings" -msgstr "モデルごとの設定を構成する" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 -msgctxt "@title:tab" -msgid "Recommended" -msgstr "Recommended" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 -msgctxt "@title:tab" -msgid "Custom" -msgstr "Custom" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:30 -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:36 -msgctxt "@item:inlistbox" -msgid "3MF File" -msgstr "3MF File" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 -msgctxt "@label" -msgid "Nozzle" -msgstr "Nozzle" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 -msgid "Browse plugins" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 -msgctxt "@window:title" -msgid "Plugin browser" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 -msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solid" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "G File" -msgstr "G File" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:254 -msgctxt "@info:status" -msgid "Parsing G-code" -msgstr "Parsing G-code" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 -msgctxt "@info:generic" -msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura Profile" -msgstr "Cura Profile" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "3MF file" -msgstr "3MF file" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:38 -msgctxt "@item:inlistbox" -msgid "Cura Project 3MF file" -msgstr "Cura Project 3MF file" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 -msgctxt "@action" -msgid "Select upgrades" -msgstr "Select upgrades" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py:12 -msgctxt "@action" -msgid "Upgrade Firmware" -msgstr "Upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py:14 -msgctxt "@action" -msgid "Checkup" -msgstr "Checkup" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.py:15 -msgctxt "@action" -msgid "Level build plate" -msgstr "Level build plate" - -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 -#, python-brace-format -msgctxt "@label" -msgid "Pre-sliced file {0}" -msgstr "Pre-sliced file {0}" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 -msgctxt "@item:material" -msgid "No material loaded" -msgstr "No material loaded" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 -msgctxt "@item:material" -msgid "Unknown material" -msgstr "Unknown material" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:30 -msgctxt "@info:status" -msgid "Finding new location for objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 -msgctxt "@info:status" -msgid "Unable to find a location within the build volume for all objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 -msgctxt "@title:window" -msgid "File Already Exists" -msgstr "File Already Exists" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 -#, python-brace-format -msgctxt "@label" -msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "The file {0} already exists. Are you sure you want to overwrite it?" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 -msgctxt "@label" -msgid "Custom" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 -msgctxt "@label" -msgid "Custom Material" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 -msgctxt "@info:status Has a cancel button next to it." -msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action:button" -msgid "Undo" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action" -msgid "Undo changing the material diameter." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: {1}" -msgstr "Failed to export profile to {0}: {1}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Failed to export profile to {0}: Writer plugin reported failure." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 -#, python-brace-format -msgctxt "@info:status" -msgid "Exported profile to {0}" -msgstr "Exported profile to {0}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Failed to import profile from {0}: {1}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 -#, python-brace-format -msgctxt "@info:status" -msgid "Successfully imported profile {0}" -msgstr "Successfully imported profile {0}" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 -#, python-brace-format -msgctxt "@info:status" -msgid "Profile {0} has an unknown file type or is corrupted." -msgstr "Profile {0} has an unknown file type or is corrupted." - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 -msgctxt "@label" -msgid "Custom profile" -msgstr "Custom profile" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 -msgctxt "@info:status" -msgid "Profile is missing a quality type." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not find a quality type {0} for the current configuration." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 -msgctxt "@info:status" -msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." -msgstr "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." - -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 -msgctxt "@info:status" -msgid "Multiplying and placing objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 -msgctxt "@title:window" -msgid "Crash Report" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 -msgctxt "@label" -msgid "" -"

A fatal exception has occurred that we could not recover from!

\n" -"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -" " -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 -msgctxt "@action:button" -msgid "Open Web Page" -msgstr "Open Web Page" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 -msgctxt "@info:progress" -msgid "Loading machines..." -msgstr "Loading machines..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 -msgctxt "@info:progress" -msgid "Setting up scene..." -msgstr "Setting up scene..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 -msgctxt "@info:progress" -msgid "Loading interface..." -msgstr "Loading interface..." - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 -#, python-format -msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." -msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 -#, python-brace-format -msgctxt "@info:status" -msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" -msgstr "Only one G-code file can be loaded at a time. Skipped importing {0}" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 -#, python-brace-format -msgctxt "@info:status" -msgid "Can't open any other file if G-code is loading. Skipped importing {0}" -msgstr "Can't open any other file if G-code is loading. Skipped importing {0}" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:59 -msgctxt "@title" -msgid "Machine Settings" -msgstr "Machine Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:77 -msgctxt "@title:tab" -msgid "Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:96 -msgctxt "@label" -msgid "Printer Settings" -msgstr "Printer Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:107 -msgctxt "@label" -msgid "X (Width)" -msgstr "X (Width)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:108 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 -msgctxt "@label" -msgid "mm" -msgstr "mm" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:117 -msgctxt "@label" -msgid "Y (Depth)" -msgstr "Y (Depth)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:127 -msgctxt "@label" -msgid "Z (Height)" -msgstr "Z (Height)" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 -msgctxt "@label" -msgid "Build plate shape" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 -msgctxt "@option:check" -msgid "Origin at center" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 -msgctxt "@option:check" -msgid "Heated bed" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 -msgctxt "@label" -msgid "Gcode flavor" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 -msgctxt "@label" -msgid "Printhead Settings" -msgstr "Printhead Settings" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:190 -msgctxt "@label" -msgid "X min" -msgstr "X min" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 -msgctxt "@tooltip" -msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 -msgctxt "@label" -msgid "Y min" -msgstr "Y min" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 -msgctxt "@tooltip" -msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 -msgctxt "@label" -msgid "X max" -msgstr "X max" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 -msgctxt "@tooltip" -msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 -msgctxt "@label" -msgid "Y max" -msgstr "Y max" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 -msgctxt "@tooltip" -msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 -msgctxt "@label" -msgid "Gantry height" -msgstr "Gantry height" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 -msgctxt "@tooltip" -msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 -msgctxt "@label" -msgid "Number of Extruders" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 -msgctxt "@tooltip" -msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 -msgctxt "@label" -msgid "Material diameter" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 -msgctxt "@label" -msgid "Nozzle size" -msgstr "Nozzle size" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 -msgctxt "@label" -msgid "Start Gcode" -msgstr "Start Gcode" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very start." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 -msgctxt "@label" -msgid "End Gcode" -msgstr "End Gcode" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very end." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 -msgctxt "@label" -msgid "Nozzle Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 -msgctxt "@label" -msgid "Nozzle offset X" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 -msgctxt "@label" -msgid "Nozzle offset Y" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 -msgctxt "@label" -msgid "Extruder Start Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 -msgctxt "@label" -msgid "Extruder End Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D Settings" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Save" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Print to: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Extruder Temperature: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Bed Temperature: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Print" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 -msgctxt "@label" -msgid "Changelog" -msgstr "Changelog" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 -msgctxt "@action:button" -msgid "Close" -msgstr "Close" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:22 -msgctxt "@title:window" -msgid "Firmware Update" -msgstr "Firmware Update" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:42 -msgctxt "@label" -msgid "Firmware update completed." -msgstr "Firmware update completed." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:47 -msgctxt "@label" -msgid "Starting firmware update, this may take a while." -msgstr "Starting firmware update, this may take a while." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:52 -msgctxt "@label" -msgid "Updating firmware." -msgstr "Updating firmware." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:61 -msgctxt "@label" -msgid "Firmware update failed due to an unknown error." -msgstr "Firmware update failed due to an unknown error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:64 -msgctxt "@label" -msgid "Firmware update failed due to an communication error." -msgstr "Firmware update failed due to an communication error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:67 -msgctxt "@label" -msgid "Firmware update failed due to an input/output error." -msgstr "Firmware update failed due to an input/output error." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:70 -msgctxt "@label" -msgid "Firmware update failed due to missing firmware." -msgstr "Firmware update failed due to missing firmware." - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:73 -msgctxt "@label" -msgid "Unknown error code: %1" -msgstr "Unknown error code: %1" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 -msgctxt "@title:window" -msgid "Connect to Networked Printer" -msgstr "Connect to Networked Printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 -msgctxt "@label" -msgid "" -"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" -"\n" -"Select your printer from the list below:" -msgstr "" -"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" -"\n" -"Select your printer from the list below:" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 -msgctxt "@action:button" -msgid "Add" -msgstr "Add" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 -msgctxt "@action:button" -msgid "Edit" -msgstr "Edit" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 -msgctxt "@action:button" -msgid "Remove" -msgstr "Remove" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 -msgctxt "@action:button" -msgid "Refresh" -msgstr "Refresh" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 -msgctxt "@label" -msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 -msgctxt "@label" -msgid "Type" -msgstr "Type" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 -msgctxt "@label" -msgid "Ultimaker 3" -msgstr "Ultimaker 3" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 -msgctxt "@label" -msgid "Ultimaker 3 Extended" -msgstr "Ultimaker 3 Extended" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 -msgctxt "@label" -msgid "Unknown" -msgstr "Unknown" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 -msgctxt "@label" -msgid "Firmware version" -msgstr "Firmware version" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 -msgctxt "@label" -msgid "Address" -msgstr "Address" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 -msgctxt "@label" -msgid "The printer at this address has not yet responded." -msgstr "The printer at this address has not yet responded." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 -msgctxt "@action:button" -msgid "Connect" -msgstr "Connect" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 -msgctxt "@title:window" -msgid "Printer Address" -msgstr "Printer Address" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 -msgctxt "@alabel" -msgid "Enter the IP address or hostname of your printer on the network." -msgstr "Enter the IP address or hostname of your printer on the network." - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 -msgctxt "@action:button" -msgid "Ok" -msgstr "Ok" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 -msgctxt "@info:tooltip" -msgid "Connect to a printer" -msgstr "Connect to a printer" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 -msgctxt "@info:tooltip" -msgid "Load the configuration of the printer into Cura" -msgstr "Load the configuration of the printer into Cura" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 -msgctxt "@action:button" -msgid "Activate Configuration" -msgstr "Activate Configuration" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 -msgctxt "@title:window" -msgid "Cura SolidWorks Plugin Configuration" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 -msgctxt "@action:label" -msgid "Default quality of the exported STL:" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always ask" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Fine quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Coarse quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:181 -msgctxt "@action:button" -msgid "OK" -msgstr "OK" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 -msgctxt "@title:window" -msgid "Import SolidWorks File as STL..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 -msgctxt "@info:tooltip" -msgid "Quality of the Exported STL" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 -msgctxt "@action:label" -msgid "Quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Coarse" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Fine" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 -msgctxt "@text:window" -msgid "Remember my choice" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 -msgctxt "@title:window" -msgid "Post Processing Plugin" -msgstr "Post Processing Plugin" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:49 -msgctxt "@label" -msgid "Post Processing Scripts" -msgstr "Post Processing Scripts" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:218 -msgctxt "@action" -msgid "Add a script" -msgstr "Add a script" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:264 -msgctxt "@label" -msgid "Settings" -msgstr "Settings" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:456 -msgctxt "@info:tooltip" -msgid "Change active post-processing scripts" -msgstr "Change active post-processing scripts" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "View Mode: Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 -msgctxt "@label" -msgid "Color scheme" -msgstr "Color scheme" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 -msgctxt "@label:listbox" -msgid "Material Color" -msgstr "Material Color" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 -msgctxt "@label:listbox" -msgid "Line Type" -msgstr "Line Type" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 -msgctxt "@label" -msgid "Compatibility Mode" -msgstr "Compatibility Mode" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 -msgctxt "@label" -msgid "Show Travels" -msgstr "Show Travels" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 -msgctxt "@label" -msgid "Show Helpers" -msgstr "Show Helpers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 -msgctxt "@label" -msgid "Show Shell" -msgstr "Show Shell" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 -msgctxt "@label" -msgid "Show Infill" -msgstr "Show Infill" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 -msgctxt "@label" -msgid "Only Show Top Layers" -msgstr "Only Show Top Layers" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 -msgctxt "@label" -msgid "Show 5 Detailed Layers On Top" -msgstr "Show 5 Detailed Layers On Top" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 -msgctxt "@label" -msgid "Top / Bottom" -msgstr "Top / Bottom" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 -msgctxt "@label" -msgid "Inner Wall" -msgstr "Inner Wall" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 -msgctxt "@title:window" -msgid "Convert Image..." -msgstr "Convert Image..." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 -msgctxt "@info:tooltip" -msgid "The maximum distance of each pixel from \"Base.\"" -msgstr "The maximum distance of each pixel from \"Base.\"" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 -msgctxt "@action:label" -msgid "Height (mm)" -msgstr "Height (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:56 -msgctxt "@info:tooltip" -msgid "The base height from the build plate in millimeters." -msgstr "The base height from the build plate in millimeters." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:61 -msgctxt "@action:label" -msgid "Base (mm)" -msgstr "Base (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:79 -msgctxt "@info:tooltip" -msgid "The width in millimeters on the build plate." -msgstr "The width in millimeters on the build plate." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:84 -msgctxt "@action:label" -msgid "Width (mm)" -msgstr "Width (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 -msgctxt "@info:tooltip" -msgid "The depth in millimeters on the build plate" -msgstr "The depth in millimeters on the build plate" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 -msgctxt "@action:label" -msgid "Depth (mm)" -msgstr "Depth (mm)" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:126 -msgctxt "@info:tooltip" -msgid "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." -msgstr "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Lighter is higher" -msgstr "Lighter is higher" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Darker is higher" -msgstr "Darker is higher" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 -msgctxt "@info:tooltip" -msgid "The amount of smoothing to apply to the image." -msgstr "The amount of smoothing to apply to the image." - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 -msgctxt "@action:label" -msgid "Smoothing" -msgstr "Smoothing" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 -msgctxt "@action:button" -msgid "Select settings" -msgstr "Select settings" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 -msgctxt "@title:window" -msgid "Select Settings to Customize for this model" -msgstr "Select Settings to Customize for this model" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 -msgctxt "@label:textbox" -msgid "Filter..." -msgstr "Filter..." - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 -msgctxt "@label:checkbox" -msgid "Show all" -msgstr "Show all" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 -msgctxt "@title:window" -msgid "Open Project" -msgstr "Open Project" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:54 -msgctxt "@action:ComboBox option" -msgid "Update existing" -msgstr "Update existing" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:55 -msgctxt "@action:ComboBox option" -msgid "Create new" -msgstr "Create new" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:66 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:70 -msgctxt "@action:title" -msgid "Summary - Cura Project" -msgstr "Summary - Cura Project" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:88 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:88 -msgctxt "@action:label" -msgid "Printer settings" -msgstr "Printer settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:104 -msgctxt "@info:tooltip" -msgid "How should the conflict in the machine be resolved?" -msgstr "How should the conflict in the machine be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:124 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:97 -msgctxt "@action:label" -msgid "Type" -msgstr "Type" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:140 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:197 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:289 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:112 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:188 -msgctxt "@action:label" -msgid "Name" -msgstr "Name" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:161 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:164 -msgctxt "@action:label" -msgid "Profile settings" -msgstr "Profile settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:177 -msgctxt "@info:tooltip" -msgid "How should the conflict in the profile be resolved?" -msgstr "How should the conflict in the profile be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:212 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:172 -msgctxt "@action:label" -msgid "Not in profile" -msgstr "Not in profile" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:217 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:177 -msgctxt "@action:label" -msgid "%1 override" -msgid_plural "%1 overrides" -msgstr[0] "%1 override" -msgstr[1] "%1 overrides" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:228 -msgctxt "@action:label" -msgid "Derivative from" -msgstr "Derivative from" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:233 -msgctxt "@action:label" -msgid "%1, %2 override" -msgid_plural "%1, %2 overrides" -msgstr[0] "%1, %2 override" -msgstr[1] "%1, %2 overrides" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:249 -msgctxt "@action:label" -msgid "Material settings" -msgstr "Material settings" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:265 -msgctxt "@info:tooltip" -msgid "How should the conflict in the material be resolved?" -msgstr "How should the conflict in the material be resolved?" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:308 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:207 -msgctxt "@action:label" -msgid "Setting visibility" -msgstr "Setting visibility" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:317 -msgctxt "@action:label" -msgid "Mode" -msgstr "Mode" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:332 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:216 -msgctxt "@action:label" -msgid "Visible settings:" -msgstr "Visible settings:" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:337 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:221 -msgctxt "@action:label" -msgid "%1 out of %2" -msgstr "%1 out of %2" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:363 -msgctxt "@action:warning" -msgid "Loading a project will clear all models on the buildplate" -msgstr "Loading a project will clear all models on the buildplate" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:381 -msgctxt "@action:button" -msgid "Open" -msgstr "Open" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 -msgctxt "@title:window" -msgid "Find & Update plugins" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 -msgctxt "@label" -msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 -msgctxt "@action:button" -msgid "Installed" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 -msgctxt "@action:button" -msgid "Download" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 -msgctxt "@title" -msgid "Select Printer Upgrades" -msgstr "Select Printer Upgrades" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker 2." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Olsson Block" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:27 -msgctxt "@title" -msgid "Build Plate Leveling" -msgstr "Build Plate Leveling" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:38 -msgctxt "@label" -msgid "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." -msgstr "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:47 -msgctxt "@label" -msgid "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." -msgstr "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:62 -msgctxt "@action:button" -msgid "Start Build Plate Leveling" -msgstr "Start Build Plate Leveling" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:74 -msgctxt "@action:button" -msgid "Move to Next Position" -msgstr "Move to Next Position" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:27 -msgctxt "@title" -msgid "Upgrade Firmware" -msgstr "Upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:38 -msgctxt "@label" -msgid "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." -msgstr "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:48 -msgctxt "@label" -msgid "The firmware shipping with new printers works, but new versions tend to have more features and improvements." -msgstr "The firmware shipping with new printers works, but new versions tend to have more features and improvements." - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:62 -msgctxt "@action:button" -msgid "Automatically upgrade Firmware" -msgstr "Automatically upgrade Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:72 -msgctxt "@action:button" -msgid "Upload custom Firmware" -msgstr "Upload custom Firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:83 -msgctxt "@title:window" -msgid "Select custom firmware" -msgstr "Select custom firmware" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Please select any upgrades made to this Ultimaker Original" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Heated Build Plate (official kit or self-built)" -msgstr "Heated Build Plate (official kit or self-built)" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:27 -msgctxt "@title" -msgid "Check Printer" -msgstr "Check Printer" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:39 -msgctxt "@label" -msgid "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" -msgstr "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:53 -msgctxt "@action:button" -msgid "Start Printer Check" -msgstr "Start Printer Check" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 -msgctxt "@label" -msgid "Connection: " -msgstr "Connection: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Connected" -msgstr "Connected" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Not connected" -msgstr "Not connected" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 -msgctxt "@label" -msgid "Min endstop X: " -msgstr "Min endstop X: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -msgctxt "@info:status" -msgid "Works" -msgstr "Works" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:173 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Not checked" -msgstr "Not checked" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 -msgctxt "@label" -msgid "Min endstop Y: " -msgstr "Min endstop Y: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 -msgctxt "@label" -msgid "Min endstop Z: " -msgstr "Min endstop Z: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 -msgctxt "@label" -msgid "Nozzle temperature check: " -msgstr "Nozzle temperature check: " - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Stop Heating" -msgstr "Stop Heating" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Start Heating" -msgstr "Start Heating" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:223 -msgctxt "@label" -msgid "Build plate temperature check:" -msgstr "Build plate temperature check:" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Checked" -msgstr "Checked" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:284 -msgctxt "@label" -msgid "Everything is in order! You're done with your CheckUp." -msgstr "Everything is in order! You're done with your CheckUp." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 -msgctxt "@label:MonitorStatus" -msgid "Not connected to a printer" -msgstr "Not connected to a printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 -msgctxt "@label:MonitorStatus" -msgid "Printer does not accept commands" -msgstr "Printer does not accept commands" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 -msgctxt "@label:MonitorStatus" -msgid "In maintenance. Please check the printer" -msgstr "In maintenance. Please check the printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 -msgctxt "@label:MonitorStatus" -msgid "Lost connection with the printer" -msgstr "Lost connection with the printer" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 -msgctxt "@label:MonitorStatus" -msgid "Printing..." -msgstr "Printing..." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 -msgctxt "@label:MonitorStatus" -msgid "Paused" -msgstr "Paused" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 -msgctxt "@label:MonitorStatus" -msgid "Preparing..." -msgstr "Preparing..." - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 -msgctxt "@label:MonitorStatus" -msgid "Please remove the print" -msgstr "Please remove the print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 -msgctxt "@label:" -msgid "Resume" -msgstr "Resume" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 -msgctxt "@label:" -msgid "Pause" -msgstr "Pause" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 -msgctxt "@label:" -msgid "Abort Print" -msgstr "Abort Print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 -msgctxt "@window:title" -msgid "Abort print" -msgstr "Abort print" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 -msgctxt "@label" -msgid "Are you sure you want to abort the print?" -msgstr "Are you sure you want to abort the print?" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:15 -msgctxt "@title:window" -msgid "Discard or Keep changes" -msgstr "Discard or Keep changes" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:57 -msgctxt "@text:window" -msgid "" -"You have customized some profile settings.\n" -"Would you like to keep or discard those settings?" -msgstr "" -"You have customized some profile settings.\n" -"Would you like to keep or discard those settings?" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 -msgctxt "@title:column" -msgid "Profile settings" -msgstr "Profile settings" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:117 -msgctxt "@title:column" -msgid "Default" -msgstr "Default" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:124 -msgctxt "@title:column" -msgid "Customized" -msgstr "Customized" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 -msgctxt "@option:discardOrKeep" -msgid "Always ask me this" -msgstr "Always ask me this" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 -msgctxt "@option:discardOrKeep" -msgid "Discard and never ask again" -msgstr "Discard and never ask again" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 -msgctxt "@option:discardOrKeep" -msgid "Keep and never ask again" -msgstr "Keep and never ask again" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:196 -msgctxt "@action:button" -msgid "Discard" -msgstr "Discard" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:209 -msgctxt "@action:button" -msgid "Keep" -msgstr "Keep" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:222 -msgctxt "@action:button" -msgid "Create New Profile" -msgstr "Create New Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:44 -msgctxt "@title" -msgid "Information" -msgstr "Information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 -msgctxt "@label" -msgid "Display Name" -msgstr "Display Name" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 -msgctxt "@label" -msgid "Brand" -msgstr "Brand" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:92 -msgctxt "@label" -msgid "Material Type" -msgstr "Material Type" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:105 -msgctxt "@label" -msgid "Color" -msgstr "Color" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:139 -msgctxt "@label" -msgid "Properties" -msgstr "Properties" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:141 -msgctxt "@label" -msgid "Density" -msgstr "Density" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:156 -msgctxt "@label" -msgid "Diameter" -msgstr "Diameter" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:185 -msgctxt "@label" -msgid "Filament Cost" -msgstr "Filament Cost" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:201 -msgctxt "@label" -msgid "Filament weight" -msgstr "Filament weight" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:218 -msgctxt "@label" -msgid "Filament length" -msgstr "Filament length" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:227 -msgctxt "@label" -msgid "Cost per Meter" -msgstr "Cost per Meter" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:241 -msgctxt "@label" -msgid "This material is linked to %1 and shares some of its properties." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:248 -msgctxt "@label" -msgid "Unlink Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:259 -msgctxt "@label" -msgid "Description" -msgstr "Description" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:272 -msgctxt "@label" -msgid "Adhesion Information" -msgstr "Adhesion Information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:298 -msgctxt "@label" -msgid "Print settings" -msgstr "Print settings" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 -msgctxt "@title:tab" -msgid "Setting Visibility" -msgstr "Setting Visibility" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 -msgctxt "@label:textbox" -msgid "Check all" -msgstr "Check all" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 -msgctxt "@info:status" -msgid "Calculated" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 -msgctxt "@title:column" -msgid "Setting" -msgstr "Setting" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:60 -msgctxt "@title:column" -msgid "Profile" -msgstr "Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:67 -msgctxt "@title:column" -msgid "Current" -msgstr "Current" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:75 -msgctxt "@title:column" -msgid "Unit" -msgstr "Unit" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 -msgctxt "@title:tab" -msgid "General" -msgstr "General" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:128 -msgctxt "@label" -msgid "Interface" -msgstr "Interface" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:139 -msgctxt "@label" -msgid "Language:" -msgstr "Language:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 -msgctxt "@label" -msgid "Currency:" -msgstr "Currency:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 -msgctxt "@label" -msgid "Theme:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 -msgctxt "@label" -msgid "You will need to restart the application for these changes to have effect." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 -msgctxt "@info:tooltip" -msgid "Slice automatically when changing settings." -msgstr "Slice automatically when changing settings." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 -msgctxt "@option:check" -msgid "Slice automatically" -msgstr "Slice automatically" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 -msgctxt "@label" -msgid "Viewport behavior" -msgstr "Viewport behavior" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 -msgctxt "@info:tooltip" -msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." -msgstr "Highlight unsupported areas of the model in red. Without support these areas will not print properly." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 -msgctxt "@option:check" -msgid "Display overhang" -msgstr "Display overhang" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 -msgctxt "@info:tooltip" -msgid "Moves the camera so the model is in the center of the view when a model is selected" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 -msgctxt "@action:button" -msgid "Center camera when item is selected" -msgstr "Center camera when item is selected" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 -msgctxt "@info:tooltip" -msgid "Should the default zoom behavior of cura be inverted?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 -msgctxt "@action:button" -msgid "Invert the direction of camera zoom." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 -msgctxt "@info:tooltip" -msgid "Should zooming move in the direction of the mouse?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 -msgctxt "@action:button" -msgid "Zoom toward mouse direction" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved so that they no longer intersect?" -msgstr "Should models on the platform be moved so that they no longer intersect?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 -msgctxt "@option:check" -msgid "Ensure models are kept apart" -msgstr "Ensure models are kept apart" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved down to touch the build plate?" -msgstr "Should models on the platform be moved down to touch the build plate?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 -msgctxt "@option:check" -msgid "Automatically drop models to the build plate" -msgstr "Automatically drop models to the build plate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 -msgctxt "@info:tooltip" -msgid "Show caution message in gcode reader." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 -msgctxt "@option:check" -msgid "Caution message in gcode reader" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 -msgctxt "@info:tooltip" -msgid "Should layer be forced into compatibility mode?" -msgstr "Should layer be forced into compatibility mode?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 -msgctxt "@option:check" -msgid "Force layer view compatibility mode (restart required)" -msgstr "Force layer view compatibility mode (restart required)" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 -msgctxt "@label" -msgid "Opening and saving files" -msgstr "Opening and saving files" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 -msgctxt "@info:tooltip" -msgid "Should models be scaled to the build volume if they are too large?" -msgstr "Should models be scaled to the build volume if they are too large?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 -msgctxt "@option:check" -msgid "Scale large models" -msgstr "Scale large models" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 -msgctxt "@info:tooltip" -msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" -msgstr "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 -msgctxt "@option:check" -msgid "Scale extremely small models" -msgstr "Scale extremely small models" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 -msgctxt "@info:tooltip" -msgid "Should a prefix based on the printer name be added to the print job name automatically?" -msgstr "Should a prefix based on the printer name be added to the print job name automatically?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 -msgctxt "@option:check" -msgid "Add machine prefix to job name" -msgstr "Add machine prefix to job name" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 -msgctxt "@info:tooltip" -msgid "Should a summary be shown when saving a project file?" -msgstr "Should a summary be shown when saving a project file?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 -msgctxt "@option:check" -msgid "Show summary dialog when saving project" -msgstr "Show summary dialog when saving project" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 -msgctxt "@info:tooltip" -msgid "Default behavior when opening a project file" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 -msgctxt "@window:text" -msgid "Default behavior when opening a project file: " -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 -msgctxt "@option:openProject" -msgid "Always ask" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 -msgctxt "@option:openProject" -msgid "Always open as a project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 -msgctxt "@option:openProject" -msgid "Always import models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 -msgctxt "@info:tooltip" -msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." -msgstr "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 -msgctxt "@label" -msgid "Override Profile" -msgstr "Override Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 -msgctxt "@label" -msgid "Privacy" -msgstr "Privacy" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 -msgctxt "@info:tooltip" -msgid "Should Cura check for updates when the program is started?" -msgstr "Should Cura check for updates when the program is started?" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 -msgctxt "@option:check" -msgid "Check for updates on start" -msgstr "Check for updates on start" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 -msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 -msgctxt "@option:check" -msgid "Send (anonymous) print information" -msgstr "Send (anonymous) print information" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 -msgctxt "@title:tab" -msgid "Printers" -msgstr "Printers" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:37 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:51 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:137 -msgctxt "@action:button" -msgid "Activate" -msgstr "Activate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:57 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:102 -msgctxt "@action:button" -msgid "Rename" -msgstr "Rename" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:151 -msgctxt "@label" -msgid "Printer type:" -msgstr "Printer type:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:160 -msgctxt "@label" -msgid "Connection:" -msgstr "Connection:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:166 -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:52 -msgctxt "@info:status" -msgid "The printer is not connected." -msgstr "The printer is not connected." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:172 -msgctxt "@label" -msgid "State:" -msgstr "State:" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:192 -msgctxt "@label:MonitorStatus" -msgid "Waiting for someone to clear the build plate" -msgstr "Waiting for someone to clear the build plate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:201 -msgctxt "@label:MonitorStatus" -msgid "Waiting for a printjob" -msgstr "Waiting for a printjob" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 -msgctxt "@title:tab" -msgid "Profiles" -msgstr "Profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Protected profiles" -msgstr "Protected profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Custom profiles" -msgstr "Custom profiles" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:64 -msgctxt "@label" -msgid "Create" -msgstr "Create" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:80 -msgctxt "@label" -msgid "Duplicate" -msgstr "Duplicate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:113 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:201 -msgctxt "@action:button" -msgid "Import" -msgstr "Import" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:119 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:212 -msgctxt "@action:button" -msgid "Export" -msgstr "Export" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:126 -msgctxt "@label %1 is printer name" -msgid "Printer: %1" -msgstr "Printer: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:165 -msgctxt "@action:button" -msgid "Update profile with current settings/overrides" -msgstr "Update profile with current settings/overrides" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:173 -msgctxt "@action:button" -msgid "Discard current changes" -msgstr "Discard current changes" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:190 -msgctxt "@action:label" -msgid "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." -msgstr "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:197 -msgctxt "@action:label" -msgid "Your current settings match the selected profile." -msgstr "Your current settings match the selected profile." - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:215 -msgctxt "@title:tab" -msgid "Global Settings" -msgstr "Global Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:258 -msgctxt "@title:window" -msgid "Rename Profile" -msgstr "Rename Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:271 -msgctxt "@title:window" -msgid "Create Profile" -msgstr "Create Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:285 -msgctxt "@title:window" -msgid "Duplicate Profile" -msgstr "Duplicate Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:299 -msgctxt "@window:title" -msgid "Import Profile" -msgstr "Import Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:307 -msgctxt "@title:window" -msgid "Import Profile" -msgstr "Import Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:335 -msgctxt "@title:window" -msgid "Export Profile" -msgstr "Export Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 -msgctxt "@title:tab" -msgid "Materials" -msgstr "Materials" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:116 -msgctxt "@action:label %1 is printer name, %2 is how this printer names variants, %3 is variant name" -msgid "Printer: %1, %2: %3" -msgstr "Printer: %1, %2: %3" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:120 -msgctxt "@action:label %1 is printer name" -msgid "Printer: %1" -msgstr "Printer: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:149 -msgctxt "@action:button" -msgid "Create" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:168 -msgctxt "@action:button" -msgid "Duplicate" -msgstr "Duplicate" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:311 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:319 -msgctxt "@title:window" -msgid "Import Material" -msgstr "Import Material" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" -msgid "Could not import material %1: %2" -msgstr "Could not import material %1: %2" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" -msgid "Successfully imported material %1" -msgstr "Successfully imported material %1" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 -msgctxt "@title:window" -msgid "Export Material" -msgstr "Export Material" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" -msgid "Failed to export material to %1: %2" -msgstr "Failed to export material to %1: %2" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" -msgid "Successfully exported material to %1" -msgstr "Successfully exported material to %1" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 -msgctxt "@title:window" -msgid "Add Printer" -msgstr "Add Printer" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:185 -msgctxt "@label" -msgid "Printer Name:" -msgstr "Printer Name:" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:208 -msgctxt "@action:button" -msgid "Add Printer" -msgstr "Add Printer" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 -msgctxt "@title:window" -msgid "About Cura" -msgstr "About Cura" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:56 -msgctxt "@label" -msgid "End-to-end solution for fused filament 3D printing." -msgstr "End-to-end solution for fused filament 3D printing." - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:69 -msgctxt "@info:credit" -msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" -"Cura proudly uses the following open source projects:" -msgstr "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" -"Cura proudly uses the following open source projects:" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 -msgctxt "@label" -msgid "Graphical user interface" -msgstr "Graphical user interface" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:119 -msgctxt "@label" -msgid "Application framework" -msgstr "Application framework" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:120 -msgctxt "@label" -msgid "GCode generator" -msgstr "GCode generator" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:121 -msgctxt "@label" -msgid "Interprocess communication library" -msgstr "Interprocess communication library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:123 -msgctxt "@label" -msgid "Programming language" -msgstr "Programming language" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:124 -msgctxt "@label" -msgid "GUI framework" -msgstr "GUI framework" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:125 -msgctxt "@label" -msgid "GUI framework bindings" -msgstr "GUI framework bindings" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:126 -msgctxt "@label" -msgid "C/C++ Binding library" -msgstr "C/C++ Binding library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:127 -msgctxt "@label" -msgid "Data interchange format" -msgstr "Data interchange format" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 -msgctxt "@label" -msgid "Support library for scientific computing" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 -msgctxt "@label" -msgid "Support library for faster math" -msgstr "Support library for faster math" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:130 -msgctxt "@label" -msgid "Support library for handling STL files" -msgstr "Support library for handling STL files" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:131 -msgctxt "@label" -msgid "Support library for handling 3MF files" -msgstr "Support library for handling 3MF files" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 -msgctxt "@label" -msgid "Serial communication library" -msgstr "Serial communication library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:133 -msgctxt "@label" -msgid "ZeroConf discovery library" -msgstr "ZeroConf discovery library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:134 -msgctxt "@label" -msgid "Polygon clipping library" -msgstr "Polygon clipping library" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:136 -msgctxt "@label" -msgid "Font" -msgstr "Font" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:137 -msgctxt "@label" -msgid "SVG icons" -msgstr "SVG icons" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 -msgctxt "@label:textbox" -msgid "Search..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 -msgctxt "@action:menu" -msgid "Copy value to all extruders" -msgstr "Copy value to all extruders" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 -msgctxt "@action:menu" -msgid "Hide this setting" -msgstr "Hide this setting" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 -msgctxt "@action:menu" -msgid "Don't show this setting" -msgstr "Don't show this setting" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 -msgctxt "@action:menu" -msgid "Keep this setting visible" -msgstr "Keep this setting visible" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 -msgctxt "@action:menu" -msgid "Configure setting visiblity..." -msgstr "Configure setting visiblity..." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:123 -msgctxt "@label" -msgid "" -"Some hidden settings use values different from their normal calculated value.\n" -"\n" -"Click to make these settings visible." -msgstr "" -"Some hidden settings use values different from their normal calculated value.\n" -"\n" -"Click to make these settings visible." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 -msgctxt "@label Header for list of settings." -msgid "Affects" -msgstr "Affects" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:67 -msgctxt "@label Header for list of settings." -msgid "Affected By" -msgstr "Affected By" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:157 -msgctxt "@label" -msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders" -msgstr "This setting is always shared between all extruders. Changing it here will change the value for all extruders" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:160 -msgctxt "@label" -msgid "The value is resolved from per-extruder values " -msgstr "The value is resolved from per-extruder values " - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:186 -msgctxt "@label" -msgid "" -"This setting has a value that is different from the profile.\n" -"\n" -"Click to restore the value of the profile." -msgstr "" -"This setting has a value that is different from the profile.\n" -"\n" -"Click to restore the value of the profile." - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 -msgctxt "@label" -msgid "" -"This setting is normally calculated, but it currently has an absolute value set.\n" -"\n" -"Click to restore the calculated value." -msgstr "" -"This setting is normally calculated, but it currently has an absolute value set.\n" -"\n" -"Click to restore the calculated value." - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "Print Setup" -msgstr "Print Setup" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "" -"Print Setup disabled\n" -"G-code files cannot be modified" -msgstr "" -"Print Setup disabled\n" -"G-code files cannot be modified" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 -msgctxt "@tooltip" -msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." -msgstr "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 -msgctxt "@tooltip" -msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." -msgstr "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." - -#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:35 -msgctxt "@title:menuitem %1 is the automatically selected material" -msgid "Automatic: %1" -msgstr "Automatic: %1" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:12 -msgctxt "@title:menu menubar:toplevel" -msgid "&View" -msgstr "&View" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 -msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" -msgid "Automatic: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 -msgctxt "@label" -msgid "Print Selected Model With:" -msgid_plural "Print Selected Models With:" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:83 -msgctxt "@title:window" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:108 -msgctxt "@label" -msgid "Number of Copies" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 -msgctxt "@title:menu menubar:file" -msgid "Open &Recent" -msgstr "Open &Recent" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:33 -msgctxt "@info:status" -msgid "No printer connected" -msgstr "No printer connected" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 -msgctxt "@label" -msgid "Hotend" -msgstr "Hotend" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 -msgctxt "@tooltip" -msgid "The current temperature of this extruder." -msgstr "The current temperature of this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 -msgctxt "@tooltip" -msgid "The colour of the material in this extruder." -msgstr "The colour of the material in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 -msgctxt "@tooltip" -msgid "The material in this extruder." -msgstr "The material in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 -msgctxt "@tooltip" -msgid "The nozzle inserted in this extruder." -msgstr "The nozzle inserted in this extruder." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 -msgctxt "@label" -msgid "Build plate" -msgstr "Build plate" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 -msgctxt "@tooltip" -msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." -msgstr "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 -msgctxt "@tooltip" -msgid "The current temperature of the heated bed." -msgstr "The current temperature of the heated bed." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 -msgctxt "@tooltip of temperature input" -msgid "The temperature to pre-heat the bed to." -msgstr "The temperature to pre-heat the bed to." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button Cancel pre-heating" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button" -msgid "Pre-heat" -msgstr "Pre-heat" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 -msgctxt "@tooltip of pre-heat" -msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." -msgstr "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 -msgctxt "@label" -msgid "Active print" -msgstr "Active print" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 -msgctxt "@label" -msgid "Job Name" -msgstr "Job Name" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 -msgctxt "@label" -msgid "Printing Time" -msgstr "Printing Time" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 -msgctxt "@label" -msgid "Estimated time left" -msgstr "Estimated time left" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:67 -msgctxt "@action:inmenu" -msgid "Toggle Fu&ll Screen" -msgstr "Toggle Fu&ll Screen" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:74 -msgctxt "@action:inmenu menubar:edit" -msgid "&Undo" -msgstr "&Undo" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:84 -msgctxt "@action:inmenu menubar:edit" -msgid "&Redo" -msgstr "&Redo" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:94 -msgctxt "@action:inmenu menubar:file" -msgid "&Quit" -msgstr "&Quit" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:102 -msgctxt "@action:inmenu" -msgid "Configure Cura..." -msgstr "Configure Cura..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:109 -msgctxt "@action:inmenu menubar:printer" -msgid "&Add Printer..." -msgstr "&Add Printer..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:115 -msgctxt "@action:inmenu menubar:printer" -msgid "Manage Pr&inters..." -msgstr "Manage Pr&inters..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:122 -msgctxt "@action:inmenu" -msgid "Manage Materials..." -msgstr "Manage Materials..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:130 -msgctxt "@action:inmenu menubar:profile" -msgid "&Update profile with current settings/overrides" -msgstr "&Update profile with current settings/overrides" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:138 -msgctxt "@action:inmenu menubar:profile" -msgid "&Discard current changes" -msgstr "&Discard current changes" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:150 -msgctxt "@action:inmenu menubar:profile" -msgid "&Create profile from current settings/overrides..." -msgstr "&Create profile from current settings/overrides..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 -msgctxt "@action:inmenu menubar:profile" -msgid "Manage Profiles..." -msgstr "Manage Profiles..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:163 -msgctxt "@action:inmenu menubar:help" -msgid "Show Online &Documentation" -msgstr "Show Online &Documentation" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:171 -msgctxt "@action:inmenu menubar:help" -msgid "Report a &Bug" -msgstr "Report a &Bug" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:179 -msgctxt "@action:inmenu menubar:help" -msgid "&About..." -msgstr "&About..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:186 -msgctxt "@action:inmenu menubar:edit" -msgid "Delete &Selected Model" -msgid_plural "Delete &Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:196 -msgctxt "@action:inmenu menubar:edit" -msgid "Center Selected Model" -msgid_plural "Center Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:205 -msgctxt "@action:inmenu menubar:edit" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:214 -msgctxt "@action:inmenu" -msgid "Delete Model" -msgstr "Delete Model" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:222 -msgctxt "@action:inmenu" -msgid "Ce&nter Model on Platform" -msgstr "Ce&nter Model on Platform" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:228 -msgctxt "@action:inmenu menubar:edit" -msgid "&Group Models" -msgstr "&Group Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:238 -msgctxt "@action:inmenu menubar:edit" -msgid "Ungroup Models" -msgstr "Ungroup Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248 -msgctxt "@action:inmenu menubar:edit" -msgid "&Merge Models" -msgstr "&Merge Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258 -msgctxt "@action:inmenu" -msgid "&Multiply Model..." -msgstr "&Multiply Model..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:265 -msgctxt "@action:inmenu menubar:edit" -msgid "&Select All Models" -msgstr "&Select All Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:275 -msgctxt "@action:inmenu menubar:edit" -msgid "&Clear Build Plate" -msgstr "&Clear Build Plate" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:285 -msgctxt "@action:inmenu menubar:file" -msgid "Re&load All Models" -msgstr "Re&load All Models" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange All Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:302 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange Selection" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:309 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model Positions" -msgstr "Reset All Model Positions" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:316 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model &Transformations" -msgstr "Reset All Model &Transformations" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:323 -msgctxt "@action:inmenu menubar:file" -msgid "&Open File(s)..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:331 -msgctxt "@action:inmenu menubar:file" -msgid "&New Project..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:338 -msgctxt "@action:inmenu menubar:help" -msgid "Show Engine &Log..." -msgstr "Show Engine &Log..." - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:346 -msgctxt "@action:inmenu menubar:help" -msgid "Show Configuration Folder" -msgstr "Show Configuration Folder" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:353 -msgctxt "@action:menu" -msgid "Configure setting visibility..." -msgstr "Configure setting visibility..." - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 -msgctxt "@label:PrintjobStatus" -msgid "Please load a 3D model" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 -msgctxt "@label:PrintjobStatus" -msgid "Ready to slice" -msgstr "Ready to slice" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 -msgctxt "@label:PrintjobStatus" -msgid "Slicing..." -msgstr "Slicing..." - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 -msgctxt "@label:PrintjobStatus %1 is target operation" -msgid "Ready to %1" -msgstr "Ready to %1" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 -msgctxt "@label:PrintjobStatus" -msgid "Unable to Slice" -msgstr "Unable to Slice" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 -msgctxt "@label:PrintjobStatus" -msgid "Slicing unavailable" -msgstr "Slicing unavailable" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Prepare" -msgstr "Prepare" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Cancel" -msgstr "Cancel" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 -msgctxt "@info:tooltip" -msgid "Select the active output device" -msgstr "Select the active output device" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 -msgctxt "@title:window" -msgid "Open file(s)" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:64 -msgctxt "@text:window" -msgid "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:99 -msgctxt "@action:button" -msgid "Import all as models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:19 -msgctxt "@title:window" -msgid "Cura" -msgstr "Cura" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:85 -msgctxt "@title:menu menubar:toplevel" -msgid "&File" -msgstr "&File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:102 -msgctxt "@action:inmenu menubar:file" -msgid "&Save Selection to File" -msgstr "&Save Selection to File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:111 -msgctxt "@title:menu menubar:file" -msgid "Save &As..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:122 -msgctxt "@title:menu menubar:file" -msgid "Save project" -msgstr "Save project" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:145 -msgctxt "@title:menu menubar:toplevel" -msgid "&Edit" -msgstr "&Edit" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:162 -msgctxt "@title:menu" -msgid "&View" -msgstr "&View" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:167 -msgctxt "@title:menu" -msgid "&Settings" -msgstr "&Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:169 -msgctxt "@title:menu menubar:toplevel" -msgid "&Printer" -msgstr "&Printer" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:179 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:191 -msgctxt "@title:menu" -msgid "&Material" -msgstr "&Material" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:180 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:192 -msgctxt "@title:menu" -msgid "&Profile" -msgstr "&Profile" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:184 -msgctxt "@action:inmenu" -msgid "Set as Active Extruder" -msgstr "Set as Active Extruder" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:202 -msgctxt "@title:menu menubar:toplevel" -msgid "E&xtensions" -msgstr "E&xtensions" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:235 -msgctxt "@title:menu menubar:toplevel" -msgid "P&references" -msgstr "P&references" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:243 -msgctxt "@title:menu menubar:toplevel" -msgid "&Help" -msgstr "&Help" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 -msgctxt "@action:button" -msgid "Open File" -msgstr "Open File" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "View Mode" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 -msgctxt "@title:tab" -msgid "Settings" -msgstr "Settings" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 -msgctxt "@title:window" -msgid "New project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 -msgctxt "@info:question" -msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 -msgctxt "@window:title" -msgid "Install Plugin" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 -msgctxt "@title:window" -msgid "Open File(s)" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 -msgctxt "@text:window" -msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:14 -msgctxt "@title:window" -msgid "Save Project" -msgstr "Save Project" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:134 -msgctxt "@action:label" -msgid "Extruder %1" -msgstr "Extruder %1" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:144 -msgctxt "@action:label" -msgid "%1 & material" -msgstr "%1 & material" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:240 -msgctxt "@action:label" -msgid "Don't show project summary on save again" -msgstr "Don't show project summary on save again" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 -msgctxt "@title:tab" -msgid "Prepare" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 -msgctxt "@title:tab" -msgid "Print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 -msgctxt "@label" -msgid "Infill" -msgstr "Infill" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 -msgctxt "@label" -msgid "Gradual infill will gradually increase the amount of infill towards the top." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 -msgctxt "@label" -msgid "Generate Support" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 -msgctxt "@label" -msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 -msgctxt "@label" -msgid "Support Extruder" -msgstr "Support Extruder" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 -msgctxt "@label" -msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." -msgstr "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 -msgctxt "@label" -msgid "Build Plate Adhesion" -msgstr "Build Plate Adhesion" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 -msgctxt "@label" -msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." -msgstr "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 -msgctxt "@label" -msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/ExtruderButton.qml:16 -msgctxt "@label %1 is filled in with the name of an extruder" -msgid "Print Selected Model with %1" -msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 -msgctxt "@title:window" -msgid "Open project file" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:71 -msgctxt "@text:window" -msgid "This is a Cura project file. Would you like to open it as a project or import the models from it?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:95 -msgctxt "@action:button" -msgid "Open as project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:114 -msgctxt "@action:button" -msgid "Import models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:15 -msgctxt "@title:window" -msgid "Engine Log" -msgstr "Engine Log" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 -msgctxt "@label" -msgid "Material" -msgstr "Material" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 -msgctxt "@tooltip" -msgid "Click to check the material compatibility on Ultimaker.com." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profile:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." - -#: MachineSettingsAction/plugin.json -msgctxt "description" -msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" - -#: MachineSettingsAction/plugin.json -msgctxt "name" -msgid "Machine Settings action" -msgstr "" - -#: XRayView/plugin.json -msgctxt "description" -msgid "Provides the X-Ray view." -msgstr "" - -#: XRayView/plugin.json -msgctxt "name" -msgid "X-Ray View" -msgstr "" - -#: X3DReader/plugin.json -msgctxt "description" -msgid "Provides support for reading X3D files." -msgstr "" - -#: X3DReader/plugin.json -msgctxt "name" -msgid "X3D Reader" -msgstr "" - -#: GCodeWriter/plugin.json -msgctxt "description" -msgid "Writes GCode to a file." -msgstr "" - -#: GCodeWriter/plugin.json -msgctxt "name" -msgid "GCode Writer" -msgstr "" - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "description" -msgid "Dump the contents of all settings to a HTML file." -msgstr "" - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "name" -msgid "God Mode" -msgstr "" - -#: ChangeLogPlugin/plugin.json -msgctxt "description" -msgid "Shows changes since latest checked version." -msgstr "" - -#: ChangeLogPlugin/plugin.json -msgctxt "name" -msgid "Changelog" -msgstr "" - -#: ProfileFlattener/plugin.json -msgctxt "description" -msgid "Create a flattend quality changes profile." -msgstr "" - -#: ProfileFlattener/plugin.json -msgctxt "name" -msgid "Profile flatener" -msgstr "" - -#: USBPrinting/plugin.json -msgctxt "description" -msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" - -#: USBPrinting/plugin.json -msgctxt "name" -msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "description" -msgid "Provides removable drive hotplugging and writing support." -msgstr "" - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "name" -msgid "Removable Drive Output Device Plugin" -msgstr "" - -#: UM3NetworkPrinting/plugin.json -msgctxt "description" -msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" - -#: UM3NetworkPrinting/plugin.json -msgctxt "name" -msgid "UM3 Network Connection" -msgstr "" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "description" -msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "name" -msgid "SolidWorks Integration" -msgstr "" - -#: PostProcessingPlugin/plugin.json -msgctxt "description" -msgid "Extension that allows for user created scripts for post processing" -msgstr "" - -#: PostProcessingPlugin/plugin.json -msgctxt "name" -msgid "Post Processing" -msgstr "" - -#: AutoSave/plugin.json -msgctxt "description" -msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" - -#: AutoSave/plugin.json -msgctxt "name" -msgid "Auto Save" -msgstr "" - -#: SliceInfoPlugin/plugin.json -msgctxt "description" -msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" - -#: SliceInfoPlugin/plugin.json -msgctxt "name" -msgid "Slice info" -msgstr "" - -#: XmlMaterialProfile/plugin.json -msgctxt "description" -msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" - -#: XmlMaterialProfile/plugin.json -msgctxt "name" -msgid "Material Profiles" -msgstr "" - -#: LegacyProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" - -#: LegacyProfileReader/plugin.json -msgctxt "name" -msgid "Legacy Cura Profile Reader" -msgstr "" - -#: GCodeProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from g-code files." -msgstr "" - -#: GCodeProfileReader/plugin.json -msgctxt "name" -msgid "GCode Profile Reader" -msgstr "" - -#: LayerView/plugin.json -msgctxt "description" -msgid "Provides the Layer view." -msgstr "" - -#: LayerView/plugin.json -msgctxt "name" -msgid "Layer View" -msgstr "" - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.5 to 2.6" -msgstr "" - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.6 to 2.7" -msgstr "" - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.1 to 2.2" -msgstr "" - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.2 to 2.4" -msgstr "" - -#: ImageReader/plugin.json -msgctxt "description" -msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" - -#: ImageReader/plugin.json -msgctxt "name" -msgid "Image Reader" -msgstr "" - -#: CuraEngineBackend/plugin.json -msgctxt "description" -msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" - -#: CuraEngineBackend/plugin.json -msgctxt "name" -msgid "CuraEngine Backend" -msgstr "" - -#: PerObjectSettingsTool/plugin.json -msgctxt "description" -msgid "Provides the Per Model Settings." -msgstr "" - -#: PerObjectSettingsTool/plugin.json -msgctxt "name" -msgid "Per Model Settings Tool" -msgstr "" - -#: 3MFReader/plugin.json -msgctxt "description" -msgid "Provides support for reading 3MF files." -msgstr "" - -#: 3MFReader/plugin.json -msgctxt "name" -msgid "3MF Reader" -msgstr "" - -#: PluginBrowser/plugin.json -msgctxt "description" -msgid "Find, manage and install new plugins." -msgstr "" - -#: PluginBrowser/plugin.json -msgctxt "name" -msgid "Plugin Browser" -msgstr "" - -#: SolidView/plugin.json -msgctxt "description" -msgid "Provides a normal solid mesh view." -msgstr "" - -#: SolidView/plugin.json -msgctxt "name" -msgid "Solid View" -msgstr "" - -#: GCodeReader/plugin.json -msgctxt "description" -msgid "Allows loading and displaying G-code files." -msgstr "" - -#: GCodeReader/plugin.json -msgctxt "name" -msgid "G-code Reader" -msgstr "" - -#: CuraProfileWriter/plugin.json -msgctxt "description" -msgid "Provides support for exporting Cura profiles." -msgstr "" - -#: CuraProfileWriter/plugin.json -msgctxt "name" -msgid "Cura Profile Writer" -msgstr "" - -#: 3MFWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing 3MF files." -msgstr "" - -#: 3MFWriter/plugin.json -msgctxt "name" -msgid "3MF Writer" -msgstr "" - -#: UltimakerMachineActions/plugin.json -msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" - -#: UltimakerMachineActions/plugin.json -msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "" - -#: CuraProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing Cura profiles." -msgstr "" - -#: CuraProfileReader/plugin.json -msgctxt "name" -msgid "Cura Profile Reader" -msgstr "" - -#~ msgctxt "@label" -#~ msgid "Machine Settings action" -#~ msgstr "Machine Setting " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -#~ msgstr "設定を変更する方法 (例としてビルトボリューム, ノズルサイズ, その他)" - -#~ msgctxt "@label" -#~ msgid "X-Ray View" -#~ msgstr "X-Ray View" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the X-Ray view." -#~ msgstr "レントゲンビューを見る。" - -#~ msgctxt "@label" -#~ msgid "X3D Reader" -#~ msgstr "X3D Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for reading X3D files." -#~ msgstr "X3Dファイル形式を読みこむ。" - -#~ msgctxt "@label" -#~ msgid "GCode Writer" -#~ msgstr "GCode Writer" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Writes GCode to a file." -#~ msgstr "Gcodeをファイルに書き出す。" - -#~ msgctxt "@action:button Preceded by 'Ready to'." -#~ msgid "Print with Doodle3D" -#~ msgstr "Print with Doodle3D" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Shows changes since latest checked version." -#~ msgstr "本バージョンでの変更点を表示する。" - -#~ msgctxt "@label" -#~ msgid "USB printing" -#~ msgstr "USB printing" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -#~ msgstr "G-Codeを承認しプリンタに送る。プラグインにてファームウェアのアップデートも可能。" - -#~ msgctxt "X3G Writer Plugin Description" -#~ msgid "Writes X3G to a file" -#~ msgstr "Writes X3G to a file" - -#~ msgctxt "@label" -#~ msgid "Removable Drive Output Device Plugin" -#~ msgstr "Removable Drive Output Device Plugin" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides removable drive hotplugging and writing support." -#~ msgstr "取り外し可能なホットプラギングドライブ及び編集のサポート。" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Ultimaker3プリンタへのネットワークの接続を管理する" - -#~ msgctxt "@label" -#~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" -#~ msgstr "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" - -#~ msgctxt "@label" -#~ msgid "Print core {0} is not properly calibrated. XY calibration needs to be performed on the printer." -#~ msgstr "Print core {0} is not properly calibrated. XY calibration needs to be performed on the printer." - -#~ msgctxt "@label" -#~ msgid "The print cores and/or materials on your printer differ from those within your current project. For the best result, always slice for the print cores and materials that are inserted in your printer." -#~ msgstr "The print cores and/or materials on your printer differ from those within your current project. For the best result, always slice for the print cores and materials that are inserted in your printer." - -#~ msgctxt "@label" -#~ msgid "Post Processing" -#~ msgstr "Post Processing" - -#~ msgctxt "Description of plugin" -#~ msgid "Extension that allows for user created scripts for post processing" -#~ msgstr "Extension that allows for user created scripts for post processing" - -#~ msgctxt "@label" -#~ msgid "Auto Save" -#~ msgstr "Auto Save" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Automatically saves Preferences, Machines and Profiles after changes." -#~ msgstr "お好みのプレファレンス, マシーン、プロファイルを変更後、自動的に保存する。" - -#~ msgctxt "@label" -#~ msgid "Slice info" -#~ msgstr "Slice info" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Submits anonymous slice info. Can be disabled through preferences." -#~ msgstr "匿名のスライスの情報を提出する。プレファレンス内にて無効に変更可能。" - -#~ msgctxt "@info" -#~ msgid "Cura collects anonymised slicing statistics. You can disable this in preferences" -#~ msgstr "Cura collects anonymised slicing statistics. You can disable this in preferences" - -#~ msgctxt "@label" -#~ msgid "Material Profiles" -#~ msgstr "Material Profiles" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides capabilities to read and write XML-based material profiles." -#~ msgstr "XML-ベース マテリアル プロファイルを読みこみ書き出すことができる。" - -#~ msgctxt "@label" -#~ msgid "Legacy Cura Profile Reader" -#~ msgstr "Legacy Cura Profile Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing profiles from legacy Cura versions." -#~ msgstr "過去の古いCuraのバージョンからプロファイルをインポートできるようにサポート。" - -#~ msgctxt "@label" -#~ msgid "GCode Profile Reader" -#~ msgstr "GCode Profile Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing profiles from g-code files." -#~ msgstr "G-codeのファイルからもファイルをインポートできるようにサポート。" - -#~ msgctxt "@label" -#~ msgid "Layer View" -#~ msgstr "Layer View" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the Layer view." -#~ msgstr "レイヤーのビューをみる。" - -#~ msgctxt "@label" -#~ msgid "Version Upgrade 2.1 to 2.2" -#~ msgstr "Version Upgrade 2.1 to 2.2" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -#~ msgstr "Cura 2.1からCura 2.2へ設定をアップグレードする。" - -#~ msgctxt "@label" -#~ msgid "Version Upgrade 2.2 to 2.4" -#~ msgstr "2.2から2.4にバージョンをアップグレードする。" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -#~ msgstr "Cura 2.2からCura 2.4へ設定をアップグレードする。" - -#~ msgctxt "@label" -#~ msgid "Image Reader" -#~ msgstr "Image Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Enables ability to generate printable geometry from 2D image files." -#~ msgstr "2Dの画像ファイルから造形可能な配列を作る機能を有効にする。" - -#~ msgctxt "@label" -#~ msgid "CuraEngine Backend" -#~ msgstr "CuraEngine Backend" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the link to the CuraEngine slicing backend." -#~ msgstr "裏画面のCuraEngineスライシングのリンクを与える。" - -#~ msgctxt "@label" -#~ msgid "Per Model Settings Tool" -#~ msgstr "Per Model Settings Tool" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the Per Model Settings." -#~ msgstr "モデルの設定をする。" - -#~ msgctxt "@label" -#~ msgid "3MF Reader" -#~ msgstr "3MF Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for reading 3MF files." -#~ msgstr "3MFファイルを読む。" - -#~ msgctxt "@label" -#~ msgid "Solid View" -#~ msgstr "Solid View" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides a normal solid mesh view." -#~ msgstr "通常のソリッドメッシュのビューをみる。" - -#~ msgctxt "@label" -#~ msgid "G-code Reader" -#~ msgstr "G-code Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Allows loading and displaying G-code files." -#~ msgstr "G-codeファイルをロード、表示させる。" - -#~ msgctxt "@label" -#~ msgid "Cura Profile Writer" -#~ msgstr "Cura Profile Writer" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for exporting Cura profiles." -#~ msgstr "Cura profilesを書き出します。" - -#~ msgctxt "@label" -#~ msgid "3MF Writer" -#~ msgstr "3MF Writer" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for writing 3MF files." -#~ msgstr "3MF filesを編集する。" - -#~ msgctxt "@label" -#~ msgid "Ultimaker machine actions" -#~ msgstr "Ultimaker machine actions" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Ultimakerの機械行動 (ベッドレベリングウィザード, アップグレード選択, その他)" - -#~ msgctxt "@label" -#~ msgid "Cura Profile Reader" -#~ msgstr "Cura Profile Reader" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing Cura profiles." -#~ msgstr "Curaのプロファイルをインポートする。" - -#~ msgctxt "@info" -#~ msgid "%(width).1f x %(depth).1f x %(height).1f mm" -#~ msgstr "%(width).1f x %(depth).1f x %(height).1f mm" - -#~ msgctxt "@label" -#~ msgid "Build Plate Shape" -#~ msgstr "Build Plate Shape" - -#~ msgctxt "@option:check" -#~ msgid "Machine Center is Zero" -#~ msgstr "Machine Center is Zero" - -#~ msgctxt "@option:check" -#~ msgid "Heated Bed" -#~ msgstr "Heated Bed" - -#~ msgctxt "@label" -#~ msgid "GCode Flavor" -#~ msgstr "GCode Flavor" - -#~ msgctxt "@label" -#~ msgid "If your printer is not listed, read the network-printing troubleshooting guide" -#~ msgstr "If your printer is not listed, read the network-printing troubleshooting guide" - -#~ msgctxt "@label" -#~ msgid "Support library for scientific computing " -#~ msgstr "Support library for scientific computing " - -#~ msgctxt "@tooltip" -#~ msgid "Print Setup

Edit or review the settings for the active print job." -#~ msgstr "Print Setup

Edit or review the settings for the active print job." - -#~ msgctxt "@tooltip" -#~ msgid "Print Monitor

Monitor the state of the connected printer and the print job in progress." -#~ msgstr "Print Monitor

Monitor the state of the connected printer and the print job in progress." - -#~ msgctxt "@title:menuitem %1 is the value from the printer" -#~ msgid "Automatic: %1" -#~ msgstr "Automatic: %1" - -#~ msgctxt "@label:PrintjobStatus" -#~ msgid "Please load a 3d model" -#~ msgstr "Please load a 3d model" - -#~ msgctxt "@info:status" -#~ msgid "Unable to start a new print job. No PrinterCore loaded in slot {0}" -#~ msgstr "Unable to start a new print job. No PrinterCore loaded in slot {0}" - -#~ msgctxt "@label" -#~ msgid "Version Upgrade 2.4 to 2.5" -#~ msgstr "Version Upgrade 2.4 to 2.5" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.4 to Cura 2.5." -#~ msgstr "Cura 2.4からCura 2.5へ設定をアップグレードする。" - -#~ msgctxt "@info:status" -#~ msgid "Unable to find a quality profile for this combination. Default settings will be used instead." -#~ msgstr "Unable to find a quality profile for this combination. Default settings will be used instead." - -#~ msgctxt "@title:window" -#~ msgid "Oops!" -#~ msgstr "Oops!" - -#~ msgctxt "@label" -#~ msgid "" -#~ "

A fatal exception has occurred that we could not recover from!

\n" -#~ "

We hope this picture of a kitten helps you recover from the shock.

\n" -#~ "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -#~ " " -#~ msgstr "" -#~ "

A fatal exception has occurred that we could not recover from!

\n" -#~ "

We hope this picture of a kitten helps you recover from the shock.

\n" -#~ "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -#~ " " - -#~ msgctxt "@label" -#~ msgid "Please enter the correct settings for your printer below:" -#~ msgstr "Please enter the correct settings for your printer below:" - -#~ msgctxt "@label" -#~ msgid "Extruder %1" -#~ msgstr "Extruder %1" - -#~ msgctxt "@label Followed by extruder selection drop-down." -#~ msgid "Print model with" -#~ msgstr "Print model with" - -#~ msgctxt "@label" -#~ msgid "You will need to restart the application for language changes to have effect." -#~ msgstr "You will need to restart the application for language changes to have effect." - -#~ msgctxt "@info:tooltip" -#~ msgid "Moves the camera so the model is in the center of the view when an model is selected" -#~ msgstr "Moves the camera so the model is in the center of the view when an model is selected" - -#~ msgctxt "@action:inmenu menubar:edit" -#~ msgid "Delete &Selection" -#~ msgstr "Delete &Selection" - -#~ msgctxt "@action:inmenu menubar:file" -#~ msgid "&Open File..." -#~ msgstr "&Open File..." - -#~ msgctxt "@action:inmenu menubar:file" -#~ msgid "&Open Project..." -#~ msgstr "&Open Project..." - -#~ msgctxt "@title:window" -#~ msgid "Multiply Model" -#~ msgstr "Multiply Model" - -#~ msgctxt "@title:menu menubar:file" -#~ msgid "Save &All" -#~ msgstr "Save &All" - -#~ msgctxt "@title:window" -#~ msgid "Open file" -#~ msgstr "Open file" - -#~ msgctxt "@title:window" -#~ msgid "Open workspace" -#~ msgstr "Open workspace" - -#~ msgctxt "@label" -#~ msgid "Hollow" -#~ msgstr "Hollow" - -#~ msgctxt "@label" -#~ msgid "No (0%) infill will leave your model hollow at the cost of low strength" -#~ msgstr "No (0%) infill will leave your model hollow at the cost of low strength" - -#~ msgctxt "@label" -#~ msgid "Light" -#~ msgstr "Light" - -#~ msgctxt "@label" -#~ msgid "Light (20%) infill will give your model an average strength" -#~ msgstr "Light (20%) infill will give your model an average strength" - -#~ msgctxt "@label" -#~ msgid "Dense" -#~ msgstr "Dense" - -#~ msgctxt "@label" -#~ msgid "Dense (50%) infill will give your model an above average strength" -#~ msgstr "Dense (50%) infill will give your model an above average strength" - -#~ msgctxt "@label" -#~ msgid "Solid" -#~ msgstr "Solid" - -#~ msgctxt "@label" -#~ msgid "Solid (100%) infill will make your model completely solid" -#~ msgstr "Solid (100%) infill will make your model completely solid" - -#~ msgctxt "@label" -#~ msgid "Enable Support" -#~ msgstr "Enable Support" - -#~ msgctxt "@label" -#~ msgid "Enable support structures. These structures support parts of the model with severe overhangs." -#~ msgstr "Enable support structures. These structures support parts of the model with severe overhangs." - -#~ msgctxt "@label" -#~ msgid "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" diff --git a/resources/i18n/ko/cura.po b/resources/i18n/ko/cura.po deleted file mode 100644 index ab572868d9..0000000000 --- a/resources/i18n/ko/cura.po +++ /dev/null @@ -1,3889 +0,0 @@ -# Cura -# Copyright (C) 2017 Ultimaker -# This file is distributed under the same license as the Cura package. -# Ruben Dulek , 2017. -# -msgid "" -msgstr "" -"Project-Id-Version: Cura 2.7\n" -"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" -"POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0200\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: Korean\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ko\n" -"Country-Code: KR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0\n" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 -msgctxt "@action" -msgid "Machine Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 -msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "X3D File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:16 -msgctxt "@item:inlistbox" -msgid "GCode File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "G-Code를 생성하고 와이파이를 통하여 두들 3D와이파이 박스로 보냅니다. " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 -msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 -msgctxt "@info:tooltip" -msgid "Print with " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 -msgctxt "@item:inmenu" -msgid "Show Changelog" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 -msgctxt "@item:inmenu" -msgid "Flatten active settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 -msgctxt "@info:status" -msgid "Profile has been flattened & activated." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 -msgctxt "@item:inmenu" -msgid "USB printing" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:27 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print via USB" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:28 -msgctxt "@info:tooltip" -msgid "Print via USB" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:30 -msgctxt "@info:status" -msgid "Connected via USB" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer is busy or not connected." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 -msgctxt "@info:status" -msgid "This printer does not support USB printing because it uses UltiGCode flavor." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 -msgctxt "@info:status" -msgid "Unable to start a new job because the printer does not support usb printing." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 -msgctxt "@info" -msgid "Unable to update firmware because there are no printers connected." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 -#, python-format -msgctxt "@info" -msgid "Could not find firmware required for the printer at %s." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Save to Removable Drive" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:24 -#, python-brace-format -msgctxt "@item:inlistbox" -msgid "Save to Removable Drive {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 -#, python-brace-format -msgctxt "@info:progress" -msgid "Saving to Removable Drive {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to {0}: {1}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 -#, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not save to removable drive {0}: {1}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Ejected {0}. You can now safely remove the drive." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to eject {0}. Another program may be using the drive." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py:68 -msgctxt "@item:intext" -msgid "Removable Drive" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 -msgctxt "@action:button Preceded by 'Ready to'." -msgid "Print over network" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 -msgctxt "@properties:tooltip" -msgid "Print over network" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 -msgctxt "@info:status" -msgid "Access to the printer requested. Please approve the request on the printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 -#, fuzzy -msgctxt "@info:status" -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0\n" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@action:button" -msgid "Retry" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 -msgctxt "@info:tooltip" -msgid "Re-send the access request" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 -msgctxt "@info:status" -msgid "Access to the printer accepted" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 -msgctxt "@info:status" -msgid "No access to print with this printer. Unable to send print job." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 -msgctxt "@action:button" -msgid "Request Access" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 -msgctxt "@info:tooltip" -msgid "Send access request to the printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 -msgctxt "@info:status" -msgid "Connected over the network. Please approve the access request on the printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 -msgctxt "@info:status" -msgid "Connected over the network." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 -msgctxt "@info:status" -msgid "Connected over the network. No access to control the printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 -msgctxt "@info:status" -msgid "Access request was denied on the printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 -msgctxt "@info:status" -msgid "Access request failed due to a timeout." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 -msgctxt "@info:status" -msgid "The connection with the network was lost." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 -msgctxt "@info:status" -msgid "The connection with the printer was lost. Check your printer to see if it is connected." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 -#, python-format -msgctxt "@info:status" -msgid "Unable to start a new print job, printer is busy. Current printer status is %s." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No Printcore loaded in slot {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to start a new print job. No material loaded in slot {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 -#, python-brace-format -msgctxt "@label" -msgid "Not enough material for spool {0}." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 -#, python-brace-format -msgctxt "@label" -msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 -#, python-brace-format -msgctxt "@label" -msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 -#, python-brace-format -msgctxt "@label" -msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 -msgctxt "@label" -msgid "Are you sure you wish to print with the selected configuration?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 -msgctxt "@label" -msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 -msgctxt "@window:title" -msgid "Mismatched configuration" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 -msgctxt "@info:status" -msgid "Sending data to printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 -msgctxt "@info:status" -msgid "Unable to send data to printer. Is another job still active?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 -msgctxt "@label:MonitorStatus" -msgid "Aborting print..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 -msgctxt "@label:MonitorStatus" -msgid "Print aborted. Please check the printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 -msgctxt "@label:MonitorStatus" -msgid "Pausing print..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 -msgctxt "@label:MonitorStatus" -msgid "Resuming print..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 -msgctxt "@window:title" -msgid "Sync with your printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 -msgctxt "@label" -msgid "Would you like to use your current printer configuration in Cura?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 -msgctxt "@label" -msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 -msgctxt "@action" -msgid "Connect via Network" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 -msgctxt "@info:status" -msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 -msgctxt "@item:inlistbox" -msgid "SolidWorks part file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 -msgctxt "@item:inlistbox" -msgid "SolidWorks assembly file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 -msgid "Configure" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 -#, python-format -msgctxt "@info:status" -msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 -msgid "Modify G-Code" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 -msgctxt "@info" -msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 -msgctxt "@action:button" -msgid "Dismiss" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura 15.04 profiles" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "G-code File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 -msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 -msgctxt "@info:status" -msgid "Cura does not accurately display layers when Wire Printing is enabled" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "JPG Image" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "JPEG Image" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:22 -msgctxt "@item:inlistbox" -msgid "PNG Image" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:26 -msgctxt "@item:inlistbox" -msgid "BMP Image" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "GIF Image" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 -msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 -#, python-brace-format -msgctxt "@info:status" -msgid "Unable to slice with the current settings. The following settings have errors: {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 -msgctxt "@info:status" -msgid "Unable to slice because the prime tower or prime position(s) are invalid." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 -msgctxt "@info:status" -msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:65 -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 -msgctxt "@info:status" -msgid "Processing Layers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 -msgctxt "@label" -msgid "Per Model Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:15 -msgctxt "@info:tooltip" -msgid "Configure Per Model Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 -msgctxt "@title:tab" -msgid "Recommended" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 -msgctxt "@title:tab" -msgid "Custom" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:30 -#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:36 -msgctxt "@item:inlistbox" -msgid "3MF File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 -msgctxt "@label" -msgid "Nozzle" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 -msgid "Browse plugins" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 -msgctxt "@window:title" -msgid "Plugin browser" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 -msgctxt "@item:inmenu" -msgid "Solid" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 -msgctxt "@item:inlistbox" -msgid "G File" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:254 -msgctxt "@info:status" -msgid "Parsing G-code" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 -msgctxt "@info:generic" -msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:14 -#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:14 -msgctxt "@item:inlistbox" -msgid "Cura Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:30 -msgctxt "@item:inlistbox" -msgid "3MF file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:38 -msgctxt "@item:inlistbox" -msgid "Cura Project 3MF file" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 -msgctxt "@action" -msgid "Select upgrades" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py:12 -msgctxt "@action" -msgid "Upgrade Firmware" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py:14 -msgctxt "@action" -msgid "Checkup" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.py:15 -msgctxt "@action" -msgid "Level build plate" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 -#, python-brace-format -msgctxt "@label" -msgid "Pre-sliced file {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 -msgctxt "@item:material" -msgid "No material loaded" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 -msgctxt "@item:material" -msgid "Unknown material" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:30 -msgctxt "@info:status" -msgid "Finding new location for objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 -msgctxt "@info:status" -msgid "Unable to find a location within the build volume for all objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 -msgctxt "@title:window" -msgid "File Already Exists" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 -#, python-brace-format -msgctxt "@label" -msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 -msgctxt "@label" -msgid "Custom" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 -msgctxt "@label" -msgid "Custom Material" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 -msgctxt "@info:status Has a cancel button next to it." -msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action:button" -msgid "Undo" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 -msgctxt "@action" -msgid "Undo changing the material diameter." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: {1}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 -#, python-brace-format -msgctxt "@info:status" -msgid "Exported profile to {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 -#, python-brace-format -msgctxt "@info:status" -msgid "Successfully imported profile {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 -#, python-brace-format -msgctxt "@info:status" -msgid "Profile {0} has an unknown file type or is corrupted." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 -msgctxt "@label" -msgid "Custom profile" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 -msgctxt "@info:status" -msgid "Profile is missing a quality type." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 -#, python-brace-format -msgctxt "@info:status" -msgid "Could not find a quality type {0} for the current configuration." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 -msgctxt "@info:status" -msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 -msgctxt "@info:status" -msgid "Multiplying and placing objects" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 -msgctxt "@title:window" -msgid "Crash Report" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 -msgctxt "@label" -msgid "" -"

A fatal exception has occurred that we could not recover from!

\n" -"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" -" " -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 -msgctxt "@action:button" -msgid "Open Web Page" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 -msgctxt "@info:progress" -msgid "Loading machines..." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 -msgctxt "@info:progress" -msgid "Setting up scene..." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 -msgctxt "@info:progress" -msgid "Loading interface..." -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 -#, python-format -msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." -msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 -#, python-brace-format -msgctxt "@info:status" -msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 -#, python-brace-format -msgctxt "@info:status" -msgid "Can't open any other file if G-code is loading. Skipped importing {0}" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:59 -msgctxt "@title" -msgid "Machine Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:77 -msgctxt "@title:tab" -msgid "Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:96 -msgctxt "@label" -msgid "Printer Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:107 -msgctxt "@label" -msgid "X (Width)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:108 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 -msgctxt "@label" -msgid "mm" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:117 -msgctxt "@label" -msgid "Y (Depth)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:127 -msgctxt "@label" -msgid "Z (Height)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 -msgctxt "@label" -msgid "Build plate shape" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 -msgctxt "@option:check" -msgid "Origin at center" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 -msgctxt "@option:check" -msgid "Heated bed" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 -msgctxt "@label" -msgid "Gcode flavor" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 -msgctxt "@label" -msgid "Printhead Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:190 -msgctxt "@label" -msgid "X min" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 -msgctxt "@tooltip" -msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 -msgctxt "@label" -msgid "Y min" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 -msgctxt "@tooltip" -msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 -msgctxt "@label" -msgid "X max" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 -msgctxt "@tooltip" -msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 -msgctxt "@label" -msgid "Y max" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 -msgctxt "@tooltip" -msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 -msgctxt "@label" -msgid "Gantry height" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 -msgctxt "@tooltip" -msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 -msgctxt "@label" -msgid "Number of Extruders" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 -msgctxt "@tooltip" -msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 -msgctxt "@label" -msgid "Material diameter" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 -msgctxt "@label" -msgid "Nozzle size" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 -msgctxt "@label" -msgid "Start Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very start." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 -msgctxt "@label" -msgid "End Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 -msgctxt "@tooltip" -msgid "Gcode commands to be executed at the very end." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 -msgctxt "@label" -msgid "Nozzle Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 -msgctxt "@label" -msgid "Nozzle offset X" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 -msgctxt "@label" -msgid "Nozzle offset Y" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 -msgctxt "@label" -msgid "Extruder Start Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 -msgctxt "@label" -msgid "Extruder End Gcode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -#, fuzzy -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 -msgctxt "@label" -msgid "Changelog" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 -msgctxt "@action:button" -msgid "Close" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:22 -msgctxt "@title:window" -msgid "Firmware Update" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:42 -msgctxt "@label" -msgid "Firmware update completed." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:47 -msgctxt "@label" -msgid "Starting firmware update, this may take a while." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:52 -msgctxt "@label" -msgid "Updating firmware." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:61 -msgctxt "@label" -msgid "Firmware update failed due to an unknown error." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:64 -msgctxt "@label" -msgid "Firmware update failed due to an communication error." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:67 -msgctxt "@label" -msgid "Firmware update failed due to an input/output error." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:70 -msgctxt "@label" -msgid "Firmware update failed due to missing firmware." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:73 -msgctxt "@label" -msgid "Unknown error code: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 -msgctxt "@title:window" -msgid "Connect to Networked Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 -msgctxt "@label" -msgid "" -"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" -"\n" -"Select your printer from the list below:" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 -msgctxt "@action:button" -msgid "Add" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 -msgctxt "@action:button" -msgid "Edit" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 -msgctxt "@action:button" -msgid "Remove" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 -msgctxt "@action:button" -msgid "Refresh" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 -msgctxt "@label" -msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 -msgctxt "@label" -msgid "Type" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 -msgctxt "@label" -msgid "Ultimaker 3" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 -msgctxt "@label" -msgid "Ultimaker 3 Extended" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 -msgctxt "@label" -msgid "Unknown" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 -msgctxt "@label" -msgid "Firmware version" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 -msgctxt "@label" -msgid "Address" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 -msgctxt "@label" -msgid "The printer at this address has not yet responded." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 -msgctxt "@action:button" -msgid "Connect" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 -msgctxt "@title:window" -msgid "Printer Address" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 -msgctxt "@alabel" -msgid "Enter the IP address or hostname of your printer on the network." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 -msgctxt "@action:button" -msgid "Ok" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 -msgctxt "@info:tooltip" -msgid "Connect to a printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 -msgctxt "@info:tooltip" -msgid "Load the configuration of the printer into Cura" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 -msgctxt "@action:button" -msgid "Activate Configuration" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 -msgctxt "@title:window" -msgid "Cura SolidWorks Plugin Configuration" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 -msgctxt "@action:label" -msgid "Default quality of the exported STL:" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always ask" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Fine quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Always use Coarse quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:181 -msgctxt "@action:button" -msgid "OK" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 -msgctxt "@title:window" -msgid "Import SolidWorks File as STL..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 -msgctxt "@info:tooltip" -msgid "Quality of the Exported STL" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 -msgctxt "@action:label" -msgid "Quality" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Coarse" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 -msgctxt "@option:curaSolidworksStlQuality" -msgid "Fine" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 -msgctxt "@text:window" -msgid "Remember my choice" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 -msgctxt "@title:window" -msgid "Post Processing Plugin" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:49 -msgctxt "@label" -msgid "Post Processing Scripts" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:218 -msgctxt "@action" -msgid "Add a script" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:264 -msgctxt "@label" -msgid "Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:456 -msgctxt "@info:tooltip" -msgid "Change active post-processing scripts" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 -msgctxt "@label" -msgid "Color scheme" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 -msgctxt "@label:listbox" -msgid "Material Color" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 -msgctxt "@label:listbox" -msgid "Line Type" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 -msgctxt "@label" -msgid "Compatibility Mode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 -msgctxt "@label" -msgid "Show Travels" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 -msgctxt "@label" -msgid "Show Helpers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 -msgctxt "@label" -msgid "Show Shell" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 -msgctxt "@label" -msgid "Show Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 -msgctxt "@label" -msgid "Only Show Top Layers" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 -msgctxt "@label" -msgid "Show 5 Detailed Layers On Top" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 -msgctxt "@label" -msgid "Top / Bottom" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 -msgctxt "@label" -msgid "Inner Wall" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 -msgctxt "@title:window" -msgid "Convert Image..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 -msgctxt "@info:tooltip" -msgid "The maximum distance of each pixel from \"Base.\"" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 -msgctxt "@action:label" -msgid "Height (mm)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:56 -msgctxt "@info:tooltip" -msgid "The base height from the build plate in millimeters." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:61 -msgctxt "@action:label" -msgid "Base (mm)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:79 -msgctxt "@info:tooltip" -msgid "The width in millimeters on the build plate." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:84 -msgctxt "@action:label" -msgid "Width (mm)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 -msgctxt "@info:tooltip" -msgid "The depth in millimeters on the build plate" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 -msgctxt "@action:label" -msgid "Depth (mm)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:126 -msgctxt "@info:tooltip" -msgid "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Lighter is higher" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 -msgctxt "@item:inlistbox" -msgid "Darker is higher" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 -msgctxt "@info:tooltip" -msgid "The amount of smoothing to apply to the image." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 -msgctxt "@action:label" -msgid "Smoothing" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 -msgctxt "@action:button" -msgid "Select settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 -msgctxt "@title:window" -msgid "Select Settings to Customize for this model" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 -msgctxt "@label:textbox" -msgid "Filter..." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 -msgctxt "@label:checkbox" -msgid "Show all" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 -msgctxt "@title:window" -msgid "Open Project" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:54 -msgctxt "@action:ComboBox option" -msgid "Update existing" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:55 -msgctxt "@action:ComboBox option" -msgid "Create new" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:66 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:70 -msgctxt "@action:title" -msgid "Summary - Cura Project" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:88 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:88 -msgctxt "@action:label" -msgid "Printer settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:104 -msgctxt "@info:tooltip" -msgid "How should the conflict in the machine be resolved?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:124 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:97 -msgctxt "@action:label" -msgid "Type" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:140 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:197 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:289 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:112 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:188 -msgctxt "@action:label" -msgid "Name" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:161 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:164 -msgctxt "@action:label" -msgid "Profile settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:177 -msgctxt "@info:tooltip" -msgid "How should the conflict in the profile be resolved?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:212 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:172 -msgctxt "@action:label" -msgid "Not in profile" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:217 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:177 -msgctxt "@action:label" -msgid "%1 override" -msgid_plural "%1 overrides" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:228 -msgctxt "@action:label" -msgid "Derivative from" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:233 -msgctxt "@action:label" -msgid "%1, %2 override" -msgid_plural "%1, %2 overrides" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:249 -msgctxt "@action:label" -msgid "Material settings" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:265 -msgctxt "@info:tooltip" -msgid "How should the conflict in the material be resolved?" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:308 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:207 -msgctxt "@action:label" -msgid "Setting visibility" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:317 -msgctxt "@action:label" -msgid "Mode" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:332 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:216 -msgctxt "@action:label" -msgid "Visible settings:" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:337 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:221 -msgctxt "@action:label" -msgid "%1 out of %2" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:363 -msgctxt "@action:warning" -msgid "Loading a project will clear all models on the buildplate" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:381 -msgctxt "@action:button" -msgid "Open" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 -msgctxt "@title:window" -msgid "Find & Update plugins" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 -msgctxt "@label" -msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 -msgctxt "@action:button" -msgid "Installed" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 -msgctxt "@action:button" -msgid "Download" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 -msgctxt "@title" -msgid "Select Printer Upgrades" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker 2." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Olsson Block" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:27 -msgctxt "@title" -msgid "Build Plate Leveling" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:38 -msgctxt "@label" -msgid "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:47 -msgctxt "@label" -msgid "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:62 -msgctxt "@action:button" -msgid "Start Build Plate Leveling" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:74 -msgctxt "@action:button" -msgid "Move to Next Position" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:27 -msgctxt "@title" -msgid "Upgrade Firmware" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:38 -msgctxt "@label" -msgid "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:48 -msgctxt "@label" -msgid "The firmware shipping with new printers works, but new versions tend to have more features and improvements." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:62 -msgctxt "@action:button" -msgid "Automatically upgrade Firmware" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:72 -msgctxt "@action:button" -msgid "Upload custom Firmware" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:83 -msgctxt "@title:window" -msgid "Select custom firmware" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:37 -msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:45 -msgctxt "@label" -msgid "Heated Build Plate (official kit or self-built)" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:27 -msgctxt "@title" -msgid "Check Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:39 -msgctxt "@label" -msgid "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:53 -msgctxt "@action:button" -msgid "Start Printer Check" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 -msgctxt "@label" -msgid "Connection: " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Connected" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 -msgctxt "@info:status" -msgid "Not connected" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 -msgctxt "@label" -msgid "Min endstop X: " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -msgctxt "@info:status" -msgid "Works" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:173 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Not checked" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 -msgctxt "@label" -msgid "Min endstop Y: " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 -msgctxt "@label" -msgid "Min endstop Z: " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 -msgctxt "@label" -msgid "Nozzle temperature check: " -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Stop Heating" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 -msgctxt "@action:button" -msgid "Start Heating" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:223 -msgctxt "@label" -msgid "Build plate temperature check:" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 -msgctxt "@info:status" -msgid "Checked" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:284 -msgctxt "@label" -msgid "Everything is in order! You're done with your CheckUp." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 -msgctxt "@label:MonitorStatus" -msgid "Not connected to a printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 -msgctxt "@label:MonitorStatus" -msgid "Printer does not accept commands" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 -msgctxt "@label:MonitorStatus" -msgid "In maintenance. Please check the printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 -msgctxt "@label:MonitorStatus" -msgid "Lost connection with the printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 -msgctxt "@label:MonitorStatus" -msgid "Printing..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 -msgctxt "@label:MonitorStatus" -msgid "Paused" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 -msgctxt "@label:MonitorStatus" -msgid "Preparing..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 -msgctxt "@label:MonitorStatus" -msgid "Please remove the print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 -msgctxt "@label:" -msgid "Resume" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 -msgctxt "@label:" -msgid "Pause" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 -msgctxt "@label:" -msgid "Abort Print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 -msgctxt "@window:title" -msgid "Abort print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 -msgctxt "@label" -msgid "Are you sure you want to abort the print?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:15 -msgctxt "@title:window" -msgid "Discard or Keep changes" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:57 -msgctxt "@text:window" -msgid "" -"You have customized some profile settings.\n" -"Would you like to keep or discard those settings?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 -msgctxt "@title:column" -msgid "Profile settings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:117 -msgctxt "@title:column" -msgid "Default" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:124 -msgctxt "@title:column" -msgid "Customized" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 -msgctxt "@option:discardOrKeep" -msgid "Always ask me this" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 -msgctxt "@option:discardOrKeep" -msgid "Discard and never ask again" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 -msgctxt "@option:discardOrKeep" -msgid "Keep and never ask again" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:196 -msgctxt "@action:button" -msgid "Discard" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:209 -msgctxt "@action:button" -msgid "Keep" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:222 -msgctxt "@action:button" -msgid "Create New Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:44 -msgctxt "@title" -msgid "Information" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 -msgctxt "@label" -msgid "Display Name" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 -msgctxt "@label" -msgid "Brand" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:92 -msgctxt "@label" -msgid "Material Type" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:105 -msgctxt "@label" -msgid "Color" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:139 -msgctxt "@label" -msgid "Properties" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:141 -msgctxt "@label" -msgid "Density" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:156 -msgctxt "@label" -msgid "Diameter" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:185 -msgctxt "@label" -msgid "Filament Cost" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:201 -msgctxt "@label" -msgid "Filament weight" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:218 -msgctxt "@label" -msgid "Filament length" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:227 -msgctxt "@label" -msgid "Cost per Meter" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:241 -msgctxt "@label" -msgid "This material is linked to %1 and shares some of its properties." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:248 -msgctxt "@label" -msgid "Unlink Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:259 -msgctxt "@label" -msgid "Description" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:272 -msgctxt "@label" -msgid "Adhesion Information" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:298 -msgctxt "@label" -msgid "Print settings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 -msgctxt "@title:tab" -msgid "Setting Visibility" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 -msgctxt "@label:textbox" -msgid "Check all" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 -msgctxt "@info:status" -msgid "Calculated" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 -msgctxt "@title:column" -msgid "Setting" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:60 -msgctxt "@title:column" -msgid "Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:67 -msgctxt "@title:column" -msgid "Current" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:75 -msgctxt "@title:column" -msgid "Unit" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 -msgctxt "@title:tab" -msgid "General" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:128 -msgctxt "@label" -msgid "Interface" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:139 -msgctxt "@label" -msgid "Language:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 -msgctxt "@label" -msgid "Currency:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 -msgctxt "@label" -msgid "Theme:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 -msgctxt "@label" -msgid "You will need to restart the application for these changes to have effect." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 -msgctxt "@info:tooltip" -msgid "Slice automatically when changing settings." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 -msgctxt "@option:check" -msgid "Slice automatically" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 -msgctxt "@label" -msgid "Viewport behavior" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 -msgctxt "@info:tooltip" -msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 -msgctxt "@option:check" -msgid "Display overhang" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 -msgctxt "@info:tooltip" -msgid "Moves the camera so the model is in the center of the view when a model is selected" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 -msgctxt "@action:button" -msgid "Center camera when item is selected" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 -msgctxt "@info:tooltip" -msgid "Should the default zoom behavior of cura be inverted?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 -msgctxt "@action:button" -msgid "Invert the direction of camera zoom." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 -msgctxt "@info:tooltip" -msgid "Should zooming move in the direction of the mouse?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 -msgctxt "@action:button" -msgid "Zoom toward mouse direction" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved so that they no longer intersect?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 -msgctxt "@option:check" -msgid "Ensure models are kept apart" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 -msgctxt "@info:tooltip" -msgid "Should models on the platform be moved down to touch the build plate?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 -msgctxt "@option:check" -msgid "Automatically drop models to the build plate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 -msgctxt "@info:tooltip" -msgid "Show caution message in gcode reader." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 -msgctxt "@option:check" -msgid "Caution message in gcode reader" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 -msgctxt "@info:tooltip" -msgid "Should layer be forced into compatibility mode?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 -msgctxt "@option:check" -msgid "Force layer view compatibility mode (restart required)" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 -msgctxt "@label" -msgid "Opening and saving files" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 -msgctxt "@info:tooltip" -msgid "Should models be scaled to the build volume if they are too large?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 -msgctxt "@option:check" -msgid "Scale large models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 -msgctxt "@info:tooltip" -msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 -msgctxt "@option:check" -msgid "Scale extremely small models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 -msgctxt "@info:tooltip" -msgid "Should a prefix based on the printer name be added to the print job name automatically?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 -msgctxt "@option:check" -msgid "Add machine prefix to job name" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 -msgctxt "@info:tooltip" -msgid "Should a summary be shown when saving a project file?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 -msgctxt "@option:check" -msgid "Show summary dialog when saving project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 -msgctxt "@info:tooltip" -msgid "Default behavior when opening a project file" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 -msgctxt "@window:text" -msgid "Default behavior when opening a project file: " -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 -msgctxt "@option:openProject" -msgid "Always ask" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 -msgctxt "@option:openProject" -msgid "Always open as a project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 -msgctxt "@option:openProject" -msgid "Always import models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 -msgctxt "@info:tooltip" -msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 -msgctxt "@label" -msgid "Override Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 -msgctxt "@label" -msgid "Privacy" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 -msgctxt "@info:tooltip" -msgid "Should Cura check for updates when the program is started?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 -msgctxt "@option:check" -msgid "Check for updates on start" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 -msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 -msgctxt "@option:check" -msgid "Send (anonymous) print information" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 -msgctxt "@title:tab" -msgid "Printers" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:37 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:51 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:137 -msgctxt "@action:button" -msgid "Activate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:57 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:102 -msgctxt "@action:button" -msgid "Rename" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:151 -msgctxt "@label" -msgid "Printer type:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:160 -msgctxt "@label" -msgid "Connection:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:166 -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:52 -msgctxt "@info:status" -msgid "The printer is not connected." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:172 -msgctxt "@label" -msgid "State:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:192 -msgctxt "@label:MonitorStatus" -msgid "Waiting for someone to clear the build plate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:201 -msgctxt "@label:MonitorStatus" -msgid "Waiting for a printjob" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 -msgctxt "@title:tab" -msgid "Profiles" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Protected profiles" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 -msgctxt "@label" -msgid "Custom profiles" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:64 -msgctxt "@label" -msgid "Create" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:80 -msgctxt "@label" -msgid "Duplicate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:113 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:201 -msgctxt "@action:button" -msgid "Import" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:119 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:212 -msgctxt "@action:button" -msgid "Export" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:126 -msgctxt "@label %1 is printer name" -msgid "Printer: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:165 -msgctxt "@action:button" -msgid "Update profile with current settings/overrides" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:173 -msgctxt "@action:button" -msgid "Discard current changes" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:190 -msgctxt "@action:label" -msgid "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:197 -msgctxt "@action:label" -msgid "Your current settings match the selected profile." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:215 -msgctxt "@title:tab" -msgid "Global Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:258 -msgctxt "@title:window" -msgid "Rename Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:271 -msgctxt "@title:window" -msgid "Create Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:285 -msgctxt "@title:window" -msgid "Duplicate Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:299 -msgctxt "@window:title" -msgid "Import Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:307 -msgctxt "@title:window" -msgid "Import Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:335 -msgctxt "@title:window" -msgid "Export Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 -msgctxt "@title:tab" -msgid "Materials" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:116 -msgctxt "@action:label %1 is printer name, %2 is how this printer names variants, %3 is variant name" -msgid "Printer: %1, %2: %3" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:120 -msgctxt "@action:label %1 is printer name" -msgid "Printer: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:149 -msgctxt "@action:button" -msgid "Create" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:168 -msgctxt "@action:button" -msgid "Duplicate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:311 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:319 -msgctxt "@title:window" -msgid "Import Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" -msgid "Could not import material %1: %2" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" -msgid "Successfully imported material %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 -msgctxt "@title:window" -msgid "Export Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" -msgid "Failed to export material to %1: %2" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" -msgid "Successfully exported material to %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 -msgctxt "@title:window" -msgid "Add Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:185 -msgctxt "@label" -msgid "Printer Name:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:208 -msgctxt "@action:button" -msgid "Add Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 -msgctxt "@title:window" -msgid "About Cura" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:56 -msgctxt "@label" -msgid "End-to-end solution for fused filament 3D printing." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:69 -msgctxt "@info:credit" -msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" -"Cura proudly uses the following open source projects:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 -msgctxt "@label" -msgid "Graphical user interface" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:119 -msgctxt "@label" -msgid "Application framework" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:120 -msgctxt "@label" -msgid "GCode generator" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:121 -msgctxt "@label" -msgid "Interprocess communication library" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:123 -msgctxt "@label" -msgid "Programming language" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:124 -msgctxt "@label" -msgid "GUI framework" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:125 -msgctxt "@label" -msgid "GUI framework bindings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:126 -msgctxt "@label" -msgid "C/C++ Binding library" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:127 -msgctxt "@label" -msgid "Data interchange format" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 -msgctxt "@label" -msgid "Support library for scientific computing" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 -msgctxt "@label" -msgid "Support library for faster math" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:130 -msgctxt "@label" -msgid "Support library for handling STL files" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:131 -msgctxt "@label" -msgid "Support library for handling 3MF files" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 -msgctxt "@label" -msgid "Serial communication library" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:133 -msgctxt "@label" -msgid "ZeroConf discovery library" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:134 -msgctxt "@label" -msgid "Polygon clipping library" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:136 -msgctxt "@label" -msgid "Font" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:137 -msgctxt "@label" -msgid "SVG icons" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 -msgctxt "@label:textbox" -msgid "Search..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 -msgctxt "@action:menu" -msgid "Copy value to all extruders" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 -msgctxt "@action:menu" -msgid "Hide this setting" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 -msgctxt "@action:menu" -msgid "Don't show this setting" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 -msgctxt "@action:menu" -msgid "Keep this setting visible" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 -msgctxt "@action:menu" -msgid "Configure setting visiblity..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:123 -msgctxt "@label" -msgid "" -"Some hidden settings use values different from their normal calculated value.\n" -"\n" -"Click to make these settings visible." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 -msgctxt "@label Header for list of settings." -msgid "Affects" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:67 -msgctxt "@label Header for list of settings." -msgid "Affected By" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:157 -msgctxt "@label" -msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:160 -msgctxt "@label" -msgid "The value is resolved from per-extruder values " -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:186 -msgctxt "@label" -msgid "" -"This setting has a value that is different from the profile.\n" -"\n" -"Click to restore the value of the profile." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 -msgctxt "@label" -msgid "" -"This setting is normally calculated, but it currently has an absolute value set.\n" -"\n" -"Click to restore the calculated value." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "Print Setup" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 -msgctxt "@label:listbox" -msgid "" -"Print Setup disabled\n" -"G-code files cannot be modified" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 -msgctxt "@tooltip" -msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 -msgctxt "@tooltip" -msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:35 -msgctxt "@title:menuitem %1 is the automatically selected material" -msgid "Automatic: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:12 -msgctxt "@title:menu menubar:toplevel" -msgid "&View" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 -msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" -msgid "Automatic: %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 -msgctxt "@label" -msgid "Print Selected Model With:" -msgid_plural "Print Selected Models With:" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:83 -msgctxt "@title:window" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:108 -msgctxt "@label" -msgid "Number of Copies" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 -msgctxt "@title:menu menubar:file" -msgid "Open &Recent" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:33 -msgctxt "@info:status" -msgid "No printer connected" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 -msgctxt "@label" -msgid "Hotend" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 -msgctxt "@tooltip" -msgid "The current temperature of this extruder." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 -msgctxt "@tooltip" -msgid "The colour of the material in this extruder." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 -msgctxt "@tooltip" -msgid "The material in this extruder." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 -msgctxt "@tooltip" -msgid "The nozzle inserted in this extruder." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 -msgctxt "@label" -msgid "Build plate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 -msgctxt "@tooltip" -msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 -msgctxt "@tooltip" -msgid "The current temperature of the heated bed." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 -msgctxt "@tooltip of temperature input" -msgid "The temperature to pre-heat the bed to." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button Cancel pre-heating" -msgid "Cancel" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 -msgctxt "@button" -msgid "Pre-heat" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 -msgctxt "@tooltip of pre-heat" -msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 -msgctxt "@label" -msgid "Active print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 -msgctxt "@label" -msgid "Job Name" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 -msgctxt "@label" -msgid "Printing Time" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 -msgctxt "@label" -msgid "Estimated time left" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:67 -msgctxt "@action:inmenu" -msgid "Toggle Fu&ll Screen" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:74 -msgctxt "@action:inmenu menubar:edit" -msgid "&Undo" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:84 -msgctxt "@action:inmenu menubar:edit" -msgid "&Redo" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:94 -msgctxt "@action:inmenu menubar:file" -msgid "&Quit" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:102 -msgctxt "@action:inmenu" -msgid "Configure Cura..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:109 -msgctxt "@action:inmenu menubar:printer" -msgid "&Add Printer..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:115 -msgctxt "@action:inmenu menubar:printer" -msgid "Manage Pr&inters..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:122 -msgctxt "@action:inmenu" -msgid "Manage Materials..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:130 -msgctxt "@action:inmenu menubar:profile" -msgid "&Update profile with current settings/overrides" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:138 -msgctxt "@action:inmenu menubar:profile" -msgid "&Discard current changes" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:150 -msgctxt "@action:inmenu menubar:profile" -msgid "&Create profile from current settings/overrides..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 -msgctxt "@action:inmenu menubar:profile" -msgid "Manage Profiles..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:163 -msgctxt "@action:inmenu menubar:help" -msgid "Show Online &Documentation" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:171 -msgctxt "@action:inmenu menubar:help" -msgid "Report a &Bug" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:179 -msgctxt "@action:inmenu menubar:help" -msgid "&About..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:186 -msgctxt "@action:inmenu menubar:edit" -msgid "Delete &Selected Model" -msgid_plural "Delete &Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:196 -msgctxt "@action:inmenu menubar:edit" -msgid "Center Selected Model" -msgid_plural "Center Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:205 -msgctxt "@action:inmenu menubar:edit" -msgid "Multiply Selected Model" -msgid_plural "Multiply Selected Models" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:214 -msgctxt "@action:inmenu" -msgid "Delete Model" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:222 -msgctxt "@action:inmenu" -msgid "Ce&nter Model on Platform" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:228 -msgctxt "@action:inmenu menubar:edit" -msgid "&Group Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:238 -msgctxt "@action:inmenu menubar:edit" -msgid "Ungroup Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248 -msgctxt "@action:inmenu menubar:edit" -msgid "&Merge Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258 -msgctxt "@action:inmenu" -msgid "&Multiply Model..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:265 -msgctxt "@action:inmenu menubar:edit" -msgid "&Select All Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:275 -msgctxt "@action:inmenu menubar:edit" -msgid "&Clear Build Plate" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:285 -msgctxt "@action:inmenu menubar:file" -msgid "Re&load All Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange All Models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:302 -msgctxt "@action:inmenu menubar:edit" -msgid "Arrange Selection" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:309 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model Positions" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:316 -msgctxt "@action:inmenu menubar:edit" -msgid "Reset All Model &Transformations" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:323 -msgctxt "@action:inmenu menubar:file" -msgid "&Open File(s)..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:331 -msgctxt "@action:inmenu menubar:file" -msgid "&New Project..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:338 -msgctxt "@action:inmenu menubar:help" -msgid "Show Engine &Log..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:346 -msgctxt "@action:inmenu menubar:help" -msgid "Show Configuration Folder" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:353 -msgctxt "@action:menu" -msgid "Configure setting visibility..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 -msgctxt "@label:PrintjobStatus" -msgid "Please load a 3D model" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 -msgctxt "@label:PrintjobStatus" -msgid "Ready to slice" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 -msgctxt "@label:PrintjobStatus" -msgid "Slicing..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 -msgctxt "@label:PrintjobStatus %1 is target operation" -msgid "Ready to %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 -msgctxt "@label:PrintjobStatus" -msgid "Unable to Slice" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 -msgctxt "@label:PrintjobStatus" -msgid "Slicing unavailable" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Prepare" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 -msgctxt "@label:Printjob" -msgid "Cancel" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 -msgctxt "@info:tooltip" -msgid "Select the active output device" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 -msgctxt "@title:window" -msgid "Open file(s)" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:64 -msgctxt "@text:window" -msgid "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:99 -msgctxt "@action:button" -msgid "Import all as models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:19 -msgctxt "@title:window" -msgid "Cura" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:85 -msgctxt "@title:menu menubar:toplevel" -msgid "&File" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:102 -msgctxt "@action:inmenu menubar:file" -msgid "&Save Selection to File" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:111 -msgctxt "@title:menu menubar:file" -msgid "Save &As..." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:122 -msgctxt "@title:menu menubar:file" -msgid "Save project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:145 -msgctxt "@title:menu menubar:toplevel" -msgid "&Edit" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:162 -msgctxt "@title:menu" -msgid "&View" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:167 -msgctxt "@title:menu" -msgid "&Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:169 -msgctxt "@title:menu menubar:toplevel" -msgid "&Printer" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:179 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:191 -msgctxt "@title:menu" -msgid "&Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:180 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:192 -msgctxt "@title:menu" -msgid "&Profile" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:184 -msgctxt "@action:inmenu" -msgid "Set as Active Extruder" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:202 -msgctxt "@title:menu menubar:toplevel" -msgid "E&xtensions" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:235 -msgctxt "@title:menu menubar:toplevel" -msgid "P&references" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:243 -msgctxt "@title:menu menubar:toplevel" -msgid "&Help" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 -msgctxt "@action:button" -msgid "Open File" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 -msgctxt "@title:tab" -msgid "Settings" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 -msgctxt "@title:window" -msgid "New project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 -msgctxt "@info:question" -msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 -msgctxt "@window:title" -msgid "Install Plugin" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 -msgctxt "@title:window" -msgid "Open File(s)" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 -msgctxt "@text:window" -msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:14 -msgctxt "@title:window" -msgid "Save Project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:134 -msgctxt "@action:label" -msgid "Extruder %1" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:144 -msgctxt "@action:label" -msgid "%1 & material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:240 -msgctxt "@action:label" -msgid "Don't show project summary on save again" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 -msgctxt "@title:tab" -msgid "Prepare" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 -msgctxt "@title:tab" -msgid "Print" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 -msgctxt "@label" -msgid "Infill" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 -msgctxt "@label" -msgid "Gradual infill will gradually increase the amount of infill towards the top." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 -msgctxt "@label" -msgid "Generate Support" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 -msgctxt "@label" -msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 -msgctxt "@label" -msgid "Support Extruder" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 -msgctxt "@label" -msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 -msgctxt "@label" -msgid "Build Plate Adhesion" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 -msgctxt "@label" -msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 -msgctxt "@label" -msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/ExtruderButton.qml:16 -msgctxt "@label %1 is filled in with the name of an extruder" -msgid "Print Selected Model with %1" -msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 -msgctxt "@title:window" -msgid "Open project file" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:71 -msgctxt "@text:window" -msgid "This is a Cura project file. Would you like to open it as a project or import the models from it?" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:95 -msgctxt "@action:button" -msgid "Open as project" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:114 -msgctxt "@action:button" -msgid "Import models" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:15 -msgctxt "@title:window" -msgid "Engine Log" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 -msgctxt "@label" -msgid "Material" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 -msgctxt "@tooltip" -msgid "Click to check the material compatibility on Ultimaker.com." -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" - -#: MachineSettingsAction/plugin.json -msgctxt "description" -msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" - -#: MachineSettingsAction/plugin.json -msgctxt "name" -msgid "Machine Settings action" -msgstr "" - -#: XRayView/plugin.json -msgctxt "description" -msgid "Provides the X-Ray view." -msgstr "" - -#: XRayView/plugin.json -msgctxt "name" -msgid "X-Ray View" -msgstr "" - -#: X3DReader/plugin.json -msgctxt "description" -msgid "Provides support for reading X3D files." -msgstr "" - -#: X3DReader/plugin.json -msgctxt "name" -msgid "X3D Reader" -msgstr "" - -#: GCodeWriter/plugin.json -msgctxt "description" -msgid "Writes GCode to a file." -msgstr "" - -#: GCodeWriter/plugin.json -msgctxt "name" -msgid "GCode Writer" -msgstr "" - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "description" -msgid "Dump the contents of all settings to a HTML file." -msgstr "" - -#: cura-god-mode-plugin/src/GodMode/plugin.json -msgctxt "name" -msgid "God Mode" -msgstr "" - -#: ChangeLogPlugin/plugin.json -msgctxt "description" -msgid "Shows changes since latest checked version." -msgstr "" - -#: ChangeLogPlugin/plugin.json -msgctxt "name" -msgid "Changelog" -msgstr "" - -#: ProfileFlattener/plugin.json -msgctxt "description" -msgid "Create a flattend quality changes profile." -msgstr "" - -#: ProfileFlattener/plugin.json -msgctxt "name" -msgid "Profile flatener" -msgstr "" - -#: USBPrinting/plugin.json -msgctxt "description" -msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" - -#: USBPrinting/plugin.json -msgctxt "name" -msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "description" -msgid "Provides removable drive hotplugging and writing support." -msgstr "" - -#: RemovableDriveOutputDevice/plugin.json -msgctxt "name" -msgid "Removable Drive Output Device Plugin" -msgstr "" - -#: UM3NetworkPrinting/plugin.json -msgctxt "description" -msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" - -#: UM3NetworkPrinting/plugin.json -msgctxt "name" -msgid "UM3 Network Connection" -msgstr "" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "description" -msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" - -#: CuraSolidWorksPlugin/plugin.json -msgctxt "name" -msgid "SolidWorks Integration" -msgstr "" - -#: PostProcessingPlugin/plugin.json -msgctxt "description" -msgid "Extension that allows for user created scripts for post processing" -msgstr "" - -#: PostProcessingPlugin/plugin.json -msgctxt "name" -msgid "Post Processing" -msgstr "" - -#: AutoSave/plugin.json -msgctxt "description" -msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" - -#: AutoSave/plugin.json -msgctxt "name" -msgid "Auto Save" -msgstr "" - -#: SliceInfoPlugin/plugin.json -msgctxt "description" -msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" - -#: SliceInfoPlugin/plugin.json -msgctxt "name" -msgid "Slice info" -msgstr "" - -#: XmlMaterialProfile/plugin.json -msgctxt "description" -msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" - -#: XmlMaterialProfile/plugin.json -msgctxt "name" -msgid "Material Profiles" -msgstr "" - -#: LegacyProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" - -#: LegacyProfileReader/plugin.json -msgctxt "name" -msgid "Legacy Cura Profile Reader" -msgstr "" - -#: GCodeProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing profiles from g-code files." -msgstr "" - -#: GCodeProfileReader/plugin.json -msgctxt "name" -msgid "GCode Profile Reader" -msgstr "" - -#: LayerView/plugin.json -msgctxt "description" -msgid "Provides the Layer view." -msgstr "" - -#: LayerView/plugin.json -msgctxt "name" -msgid "Layer View" -msgstr "" - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" - -#: VersionUpgrade/VersionUpgrade25to26/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.5 to 2.6" -msgstr "" - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" - -#: VersionUpgrade/VersionUpgrade26to27/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.6 to 2.7" -msgstr "" - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" - -#: VersionUpgrade/VersionUpgrade21to22/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.1 to 2.2" -msgstr "" - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "description" -msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" - -#: VersionUpgrade/VersionUpgrade22to24/plugin.json -msgctxt "name" -msgid "Version Upgrade 2.2 to 2.4" -msgstr "" - -#: ImageReader/plugin.json -msgctxt "description" -msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" - -#: ImageReader/plugin.json -msgctxt "name" -msgid "Image Reader" -msgstr "" - -#: CuraEngineBackend/plugin.json -msgctxt "description" -msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" - -#: CuraEngineBackend/plugin.json -msgctxt "name" -msgid "CuraEngine Backend" -msgstr "" - -#: PerObjectSettingsTool/plugin.json -msgctxt "description" -msgid "Provides the Per Model Settings." -msgstr "" - -#: PerObjectSettingsTool/plugin.json -msgctxt "name" -msgid "Per Model Settings Tool" -msgstr "" - -#: 3MFReader/plugin.json -msgctxt "description" -msgid "Provides support for reading 3MF files." -msgstr "" - -#: 3MFReader/plugin.json -msgctxt "name" -msgid "3MF Reader" -msgstr "" - -#: PluginBrowser/plugin.json -msgctxt "description" -msgid "Find, manage and install new plugins." -msgstr "" - -#: PluginBrowser/plugin.json -msgctxt "name" -msgid "Plugin Browser" -msgstr "" - -#: SolidView/plugin.json -msgctxt "description" -msgid "Provides a normal solid mesh view." -msgstr "" - -#: SolidView/plugin.json -msgctxt "name" -msgid "Solid View" -msgstr "" - -#: GCodeReader/plugin.json -msgctxt "description" -msgid "Allows loading and displaying G-code files." -msgstr "" - -#: GCodeReader/plugin.json -msgctxt "name" -msgid "G-code Reader" -msgstr "" - -#: CuraProfileWriter/plugin.json -msgctxt "description" -msgid "Provides support for exporting Cura profiles." -msgstr "" - -#: CuraProfileWriter/plugin.json -msgctxt "name" -msgid "Cura Profile Writer" -msgstr "" - -#: 3MFWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing 3MF files." -msgstr "" - -#: 3MFWriter/plugin.json -msgctxt "name" -msgid "3MF Writer" -msgstr "" - -#: UltimakerMachineActions/plugin.json -msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" - -#: UltimakerMachineActions/plugin.json -msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "" - -#: CuraProfileReader/plugin.json -msgctxt "description" -msgid "Provides support for importing Cura profiles." -msgstr "" - -#: CuraProfileReader/plugin.json -msgctxt "name" -msgid "Cura Profile Reader" -msgstr "" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -#~ msgstr "빌드볼륨, 노즐 사이즈 등, 장비 셋팅의 방법을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the X-Ray view." -#~ msgstr "엑스레이 뷰 제공 " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for reading X3D files." -#~ msgstr "X3D파일을 읽을 경우, 서포트를 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Writes GCode to a file." -#~ msgstr "파일에 GCode를 씁니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Shows changes since latest checked version." -#~ msgstr "최신버젼에서 수정된 사항을 보여 줍니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -#~ msgstr "G-Code를 생성하고 이를 프린터로 보냅니다. 프러그인이 펌웨어를 업데이트 합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides removable drive hotplugging and writing support." -#~ msgstr "제거 가능한 드라이브를 제공하고 서포트를 씁니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "얼티메이커 3 프린터의 네트워크 커넥션을 처리합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Submits anonymous slice info. Can be disabled through preferences." -#~ msgstr "익명 슬라이스 정보를 제출합니다. 환경 설정을 통해 비활성화 할 수 있습니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides capabilities to read and write XML-based material profiles." -#~ msgstr "읽기 및 XML 기반의 물질 프로파일을 작성하는 기능을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing profiles from legacy Cura versions." -#~ msgstr "기존 버전 큐라에서 프로파일을 가져 오기위한 지원을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing profiles from g-code files." -#~ msgstr "G-코드 파일에서 프로파일을 가져 오기위한 지원을 제공합니다" - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the Layer view." -#~ msgstr "레이어 보기를 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -#~ msgstr "큐라 2.1 구성을 큐라 2.2 구성으로 업그레이드합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -#~ msgstr "큐라 2.2 구성을 큐라 2.4 구성으로 업그레이드합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Enables ability to generate printable geometry from 2D image files." -#~ msgstr "2D 이미지 파일에서 인쇄 가능한 지오메트리를 생성 할 수있는 기능을 활성화합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the link to the CuraEngine slicing backend." -#~ msgstr "큐라엔진 슬라이싱 백엔드에 대한 링크를 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides the Per Model Settings." -#~ msgstr "사용자 단위 모델 설정을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for reading 3MF files." -#~ msgstr "3MF 파일을 읽기위한 지원을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides a normal solid mesh view." -#~ msgstr "일반 솔리드 메쉬 보기를 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Allows loading and displaying G-code files." -#~ msgstr "로드 및 G 코드 파일들을 표시 할 수 있습니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for exporting Cura profiles." -#~ msgstr "큐라 프로파일들의 추출에 대한 지원을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for writing 3MF files." -#~ msgstr "3MF 파일을 작성하기 위한 지원을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "베드레벨링, 마법사, 선택적인 업그레이드 등의 Ultimaker 장비에 대한 기계적인 액션을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Provides support for importing Cura profiles." -#~ msgstr "큐라 프로파일을 가져 오기 위한 지원을 제공합니다. " - -#~ msgctxt "@info:whatsthis" -#~ msgid "Upgrades configurations from Cura 2.4 to Cura 2.5." -#~ msgstr "큐라 2.4 구성을 큐라 2.5 구성으로 업그레이드합니다. " diff --git a/resources/i18n/ko/fdmextruder.def.json.po b/resources/i18n/ko_KR/fdmextruder.def.json.po similarity index 96% rename from resources/i18n/ko/fdmextruder.def.json.po rename to resources/i18n/ko_KR/fdmextruder.def.json.po index c527cdd050..a6635e1d78 100644 --- a/resources/i18n/ko/fdmextruder.def.json.po +++ b/resources/i18n/ko_KR/fdmextruder.def.json.po @@ -5,25 +5,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-08-08 21:57+0900\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: ko\n" +"PO-Revision-Date: 2017-09-20 14:31+0900\n" +"Last-Translator: Brule\n" +"Language-Team: Brule\n" +"Language: ko_KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ko\n" -"Country-Code: KR\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.0.3\n" #: fdmextruder.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "장비 " +msgstr "기계" #: fdmextruder.def.json msgctxt "machine_settings description" @@ -198,4 +196,4 @@ msgstr "압출기 프라임 Y 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " \ No newline at end of file diff --git a/resources/i18n/ko/fdmprinter.def.json.po b/resources/i18n/ko_KR/fdmprinter.def.json.po similarity index 91% rename from resources/i18n/ko/fdmprinter.def.json.po rename to resources/i18n/ko_KR/fdmprinter.def.json.po index d347d0c68e..b943c854d0 100644 --- a/resources/i18n/ko/fdmprinter.def.json.po +++ b/resources/i18n/ko_KR/fdmprinter.def.json.po @@ -5,13 +5,13 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-08-08 23:38+0900\n" -"Last-Translator: None\n" -"Language-Team: None\n" -"Language: ko\n" +"PO-Revision-Date: 2017-09-21 14:58+0900\n" +"Last-Translator: Brule\n" +"Language-Team: Brule\n" +"Language: ko_KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -757,16 +757,6 @@ msgctxt "shell description" msgid "Shell" msgstr "겉면 " -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "벽을 인쇄하는 데 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" @@ -1127,6 +1117,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1147,6 +1142,36 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "레이어의 각 부분을 인쇄 할 위치 근처의 위치에 대한 Y 좌표입니다. " +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" @@ -1167,6 +1192,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "모델에 수직 간격이 작 으면이 좁은 공간에서 상단 및 하단 스킨을 생성하는 데 약 5 %의 추가 계산 시간을 소비 할 수 있습니다. 이 경우 설정을 해제하십시오. " +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "위쪽 / 아래쪽 패턴의 가장 바깥 쪽 부분을 여러 동심 선으로 바꿉니다. 하나 또는 두 개의 선을 사용하면 충진재로 시작하는 지붕이 향상됩니다. " + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1185,7 +1220,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "충전용 인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다." +msgstr "충진용 인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1214,8 +1249,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "프린트의 충전재 패턴. 라인과 지그는 대체 층에서 스필 방향을 바꾸어 재료비를 줄입니다. 그리드, 삼각형, 큐빅, 사면체 및 동심원 패턴은 모든 레이어에 완전히 인쇄됩니다. 입방체 및 사면체 충전재는 각 방향마다 강도가 균등하게 분포되도록 모든 층을 변경합니다. " +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "인쇄물의 충진재 패턴. 라인과 지그재그는 대체 층의 스필 방향을 바꾸어 재료비를 줄입니다. 그리드, 삼각형, 큐빅, 옥텟, 쿼터 큐빅 및 동심원 패턴이 모든 레이어에 완전히 인쇄됩니다. 큐빅, 쿼터 큐빅 및 옥 테트 필은 각 레이어에 따라 변경되어 각 방향에 대해보다 균등 한 강도 분포를 제공합니다. " #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1244,7 +1279,12 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" +msgid "Octet" +msgstr "" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" msgstr "" #: fdmprinter.def.json @@ -1262,6 +1302,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "내부 벽의 모양을 따르는 선을 사용하여 충전 패턴이 내부 벽과 만나는 끝을 연결하십시오. 이 설정을 사용하면 벽에 충전재가 잘 밀착되고 수직 표면의 품질에 영향을 줄 수 있습니다. 이 설정을 사용하지 않으면 사용되는 재료의 양이 줄어 듭니다. " + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1383,34 +1443,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "이보다 작은 충진물 영역을 생성하지 마십시오 (대신 스킨 사용). " #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "평면의 상단 및 / 또는 하단 스킨 영역을 확장합니다. 기본적으로 스필은 충진을 둘러싸는 벽 선 아래에서 멈 춥니 다. 그러나 이는 충진 밀도가 낮을 때 나타나는 구멍으로 이어질 수 있습니다. 이 설정은 스킨을 벽 선 너머로 확장하여 다음 레이어의 필이 피부에 놓 이도록합니다. " +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "제거 할 외부스킨 영역의 가장 큰 너비. 이 값보다 작은 모든 스킨 영역은 사라집니다. 이렇게하면 모델의 경사면에서 위쪽 / 아래쪽 스킨을 인쇄하는 데 소요되는 시간과 재료의 양을 제한하는 데 도움이됩니다. " #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "상단 피부 영역 (위의 공기가있는 영역)을 확장하여 위의 충진물을 지탱하도록하십시오. " +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "제거 할 상단 스킨 영역의 가장 큰 너비. 이 값보다 작은 모든 스킨 영역은 사라집니다. 이렇게하면 모델의 경사면에서 상단 스킨을 인쇄하는 데 소요되는 시간과 재료의 양을 제한하는 데 도움이됩니다." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" msgstr "" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "아래 피부 영역 (공기가있는 부분)을 확장하여 위와 아래의 충진층으로 고정시킵니다. " +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "제거 할 바닥 스킨 영역의 최대 너비. 이 값보다 작은 모든 스킨 영역은 사라집니다. 이렇게하면 모델의 경사면에서 밑면 스킨을 인쇄하는 데 소요되는 시간과 재료의 양을 제한하는 데 도움이됩니다." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1419,8 +1479,28 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "스킨이 충진 될 거리입니다. 기본 거리는 충진 선 사이의 간격을 메우기에 충분하며 충진 밀도가 낮을 때 벽과 만나는 스킨에 나타나는 구멍을 막습니다. 거리가 짧으면 충분합니다. " +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "스킨이 infill로 확장되는 거리입니다. 값이 높을수록 스킨이 충 패턴에 더 잘 부착되고 인접 레이어의 벽이 피부에 잘 밀착됩니다. 값이 낮을수록 사용 된 재료의 양이 절약됩니다. " + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "상단 스킨의 거리가 infill로 확장됩니다. 값이 높을수록 스킨이 충 패턴에 더 잘 부착되며 위 레이어의 벽이 피부에 잘 밀착됩니다. 값이 낮을수록 사용 된 재료의 양이 절약됩니다. " + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "바닥 스킨의 거리가 infill로 확장됩니다. 값이 높을수록 피부가 충 패턴에 더 잘 붙어 피부가 아래 층의 벽에 잘 밀착됩니다. 값이 낮을수록 사용 된 재료의 양이 절약됩니다. " #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1430,7 +1510,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion description" msgid "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical." -msgstr "이 설정보다 큰 각도로 객체의 상단 및 / 또는 하단 표면은 위쪽 / 아래쪽 스킨이 확장되지 않습니다. 이렇게하면 모델 표면이 수직 경사가 거의 없을 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. \"0\" 도의 각도는 수평이며, 90 도의 각도는 수직입니다. " +msgstr "이 설정보다 큰 각도로 객체의 상단 및 또는 하단 표면은 위쪽 / 아래쪽 스킨이 확장되지 않습니다. 이렇게하면 모델 표면이 수직 경사가 거의 없을 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. \"0\" 도의 각도는 수평이며, 90 도의 각도는 수직입니다. " #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion label" @@ -1790,7 +1870,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "상단 표면 스킨 층이 인쇄되는 속도." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1802,16 +1882,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 속도입니다. " -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "상단 표면을 통과하는 속도. " - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2042,16 +2112,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 가속도입니다. " -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "다림질이 수행되는 가속도. " - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2242,16 +2302,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "상단 / 하단 레이어가 인쇄되는 최대 순간 속도 변화. " -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "다림질을하는 동안 최대 순간 속도 변화. " - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2767,6 +2817,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2779,23 +2834,33 @@ msgstr "지그재그를 연결하십시오. 이것은 지그재그지지 구조 #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" +msgid "Break Up Support In Chunks" msgstr "" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "지그재그 연결을 건너 뛰면 지원 구조를 쉽게 끊을 수 있습니다. " +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "지원 구조가 쉽게 끊어 지도록 지원 라인 연결을 건너 뛰십시오. 이 설정은 지그재그 지원 충전 패턴에 적용됩니다. " + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "지지 구조를 쉽게 분리 할 수 있도록 N 밀리미터마다 지지선 사이를 연결하십시오. " #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" +msgid "Support Chunk Line Count" msgstr "" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "지원 구조를 쉽게 깨뜨릴 수 있도록 N 개의 연결 라인마다 하나씩 건너 뜁니다. " +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "지원 구조를 쉽게 깨뜨릴 수 있도록 모든 N 개의 연결 라인을 건너 뜁니다. " #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -3379,6 +3444,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "모델 바깥 쪽 가장자리에만 인쇄하십시오. 이렇게하면 나중에 제거해야하는 가장자리의 양이 줄어들지 만 침대 접착력은 그렇게 많이 줄어들지 않습니다. " +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "압출기는이 양만큼 제 1 층의 정상 높이로부터 오프셋된다. 양수 (양수) 또는 음수 (양수) 일 수 있습니다. 압출기를 약간 올리면 일부 필라멘트 유형이 빌드 플레이트에 잘 밀착됩니다. " + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "0이 아니면 Z 오프셋은 많은 레이어에서 0으로 줄어 듭니다. 값 0은 인쇄물의 모든 레이어에 대해 Z 오프셋이 일정하게 유지됨을 의미합니다. " + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3389,6 +3474,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "래프트가 활성화 된 경우 래프트가 주어진 모델 주변의 추가 뗏목 지역입니다. 이 여백을 늘리면 재료를 더 많이 사용하고 인쇄물을 적게 차지하면서 더 강력한 래프트가 만들어집니다. " +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "이 설정은 뗏목 윤곽의 내부 모서리가 둥근 정도를 제어합니다. 안쪽 모서리는 여기에 주어진 값과 같은 반경을 가진 반원으로 반올림됩니다. 이 설정은 또한 뗏목 외곽선에서 그러한 원보다 작은 구멍을 제거합니다. " + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -4064,6 +4159,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "나선형 윤곽선을 부드럽게하여 Z 솔기의 가시성을 줄이십시오 (Z- 솔기는 인쇄물에서는 거의 보이지 않지만 레이어 뷰에서는 여전히 보임). 매끄러움은 표면의 세부 묘사를 흐릿하게하는 경향이 있습니다. " +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "절대 돌출보다는 상대적 돌출을 사용하십시오. 상대적인 E-steps을 사용하면 Gcode를보다 쉽게 후 처리 할 수 있습니다. 그러나 모든 프린터에서 지원되는 것은 아니며 절대 E 단계와 비교할 때 증착 된 재료의 양이 매우 약간 다를 수 있습니다. 이 설정과 관계없이 압출 모드는 Gcode 스크립트가 출력되기 전에 항상 절대 값으로 설정됩니다. " + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4074,6 +4179,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "실험적인 " +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "수축 및 이동 거리를 줄이도록 벽이 인쇄되는 순서를 최적화하십시오. 대부분의 부품은이 기능을 사용하면 도움이되지만, 실제로는 시간이 오래 걸릴 수 있으므로, 최적화 여부에 관계없이 인쇄 시간을 비교하십시오. " + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4184,16 +4299,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "코스팅(Coasting) 시, 이동 속도. 돌출 경로의 속도에 상대적입니다. 해안 이동 중에 보우 덴 튜브의 압력이 떨어지기 때문에 100 %보다 약간 작은 값을 권합니다. " -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "위쪽 / 아래쪽 패턴의 가장 바깥 쪽 부분을 여러 동심 선으로 바꿉니다. 하나 또는 두 개의 선을 사용하면 충진재로 시작하는 지붕이 향상됩니다. " - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4204,6 +4309,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 방향을 바꿉니다. 보통 대각선으로 만 인쇄됩니다. 이 설정은 X 전용 및 Y 전용 방향을 추가합니다. " +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "패턴이 만지는 높이에서 크로스 3D 패턴의 4 방향 교차점에있는 포켓의 크기입니다. " + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "십자형 3D 패턴에서 4방향 교차점의 절반에만 포켓을 적용하고 패턴이 만지는 높이 사이의 포켓 위치를 교체하십시오. " + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4621,6 +4746,16 @@ msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." msgstr "상단 표면을 한 번 더 이동 시키되 재료를 돌출시키지 마십시오. 이것은 플라스틱을 맨 위에 더 녹여 부드러운 표면을 만듭니다. " +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "메쉬의 마지막 레이어에서만 다림질을 수행하십시오. 낮은 레이어에서 매끄러운 표면 처리가 필요하지 않은 경우 시간을 절약 할 수 있습니다. " + #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" @@ -4671,6 +4806,36 @@ msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." msgstr "모델 가장자리에서 떨어지지 않는 거리. 메쉬 가장자리까지 다림질하면 인쇄물의 가장자리가 고르지 않을 수 있습니다. " +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "상단 표면을 통과하는 속도. " + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "다림질이 수행되는 가속도. " + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "다림질을하는 동안 최대 순간 속도 변화. " + #: fdmprinter.def.json msgctxt "command_line_settings label" msgid "Command Line Settings" @@ -4731,10 +4896,42 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "파일로부터 로드 하는 경유, 모델에 적용될 변환 행렬입니다. " +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "벽을 인쇄하는 데 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "프린트의 충전재 패턴. 라인과 지그는 대체 층에서 스필 방향을 바꾸어 재료비를 줄입니다. 그리드, 삼각형, 큐빅, 사면체 및 동심원 패턴은 모든 레이어에 완전히 인쇄됩니다. 입방체 및 사면체 충전재는 각 방향마다 강도가 균등하게 분포되도록 모든 층을 변경합니다. " + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "평면의 상단 및 / 또는 하단 스킨 영역을 확장합니다. 기본적으로 스필은 충진을 둘러싸는 벽 선 아래에서 멈 춥니 다. 그러나 이는 충진 밀도가 낮을 때 나타나는 구멍으로 이어질 수 있습니다. 이 설정은 스킨을 벽 선 너머로 확장하여 다음 레이어의 필이 피부에 놓 이도록합니다. " + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "상단 피부 영역 (위의 공기가있는 영역)을 확장하여 위의 충진물을 지탱하도록하십시오. " + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "아래 피부 영역 (공기가있는 부분)을 확장하여 위와 아래의 충진층으로 고정시킵니다. " + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "스킨이 충진 될 거리입니다. 기본 거리는 충진 선 사이의 간격을 메우기에 충분하며 충진 밀도가 낮을 때 벽과 만나는 스킨에 나타나는 구멍을 막습니다. 거리가 짧으면 충분합니다. " + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "지그재그 연결을 건너 뛰면 지원 구조를 쉽게 끊을 수 있습니다. " + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "지원 구조를 쉽게 깨뜨릴 수 있도록 N 개의 연결 라인마다 하나씩 건너 뜁니다. " + #~ msgctxt "wall_thickness description" #~ msgid "The thickness of the outside walls in the horizontal direction. This value divided by the wall line width defines the number of walls." #~ msgstr "외벽의 수평 방향의 두께. 이 값을 벽 선 너비로 나눈 값은 벽의 수를 정의합니다. " #~ msgctxt "skin_overlap description" #~ msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." -#~ msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " +#~ msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " \ No newline at end of file diff --git a/resources/i18n/nl/cura.po b/resources/i18n/nl_NL/cura.po similarity index 72% rename from resources/i18n/nl/cura.po rename to resources/i18n/nl_NL/cura.po index 4324e842a2..680106d321 100644 --- a/resources/i18n/nl/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Dutch\n" -"Language: Dutch\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: nl\n" -"Country-Code: NL\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Print afgebroken" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Geblokkeerd" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Handeling nodig" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Print start niet" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Deze printer is niet opgezet om een groep Ultimaker 3 printers te hosten." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Klaar om: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Deze printer is de host voor een groep van %1 Ultimaker 3 printers." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "Printer '{printer_name}' is klaar met het printen van '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Print klaar" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugins" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Door invoegtoepassingen bladeren..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Geïnstalleerde plugins..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Machine-instellingen" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Röntgen" +msgid "X-Ray view" +msgstr "Röntgenweergave" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "G-code-bestand" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Accepteert G-code en verzendt deze code via WiFi naar een Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D-printen" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Printen via Doodle3D WiFi-Box" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Printen via Doodle3D WiFi-Box" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Verbinding maken met Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Annuleren" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "De gegevens worden naar Doodle3D Connect verzonden" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Kan geen gegevens naar Doodle3D Connect verzenden. Is er nog een andere taak actief?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Gegevens op Doodle3D Connect opslaan" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Het bestand is naar Doodle3D Connect verzonden" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Connect openen" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Printen via" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Scanners inschakelen..." +msgid "Open the Doodle3D Connect web interface" +msgstr "De Doodle3D Connect-webinterface openen" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Er kan geen nieuwe taak worden gestart omdat de printer bezig is of niet aangesloten is." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Printgegevens" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "De printer biedt geen ondersteuning voor USB-printen omdat deze de codeversie UltiGCode gebruikt." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB-printen" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Er kan geen nieuwe taak worden gestart omdat de printer geen ondersteuning biedt voor USB-printen." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Waarschuwing" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "De voor de printer benodigde software is niet op %s te vinden." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G-bestand" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Firmware van uw printer" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Opslaan op Verwisselbaar Station {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Opslaan op Verwisselbaar Station {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Opslaan" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" msgstr "Kan niet opslaan als {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Opgeslagen op Verwisselbaar Station {0} als {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Kan geen bestandsnaam vinden tijdens het schrijven naar {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Uitwerpen" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Verwisselbaar station {0} uitwerpen" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Kan niet opslaan op verwisselbaar station {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Fout" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Opgeslagen op Verwisselbaar Station {0} als {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Bestand opgeslagen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Uitwerpen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Verwisselbaar station {0} uitwerpen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "{0} is uitgeworpen. U kunt het station nu veilig verwijderen." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Hardware veilig verwijderen" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Verwisselbaar Station" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Printen via netwerk" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Printen via netwerk" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Er is een toegangsaanvraag voor de printer verstuurd. Keur de aanvraag goed op de printer" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Verbindingsstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Verbindingsstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Opnieuw proberen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "De toegangsaanvraag opnieuw verzenden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Toegang tot de printer is geaccepteerd" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Kan geen toegang verkrijgen om met deze printer te printen. Kan de printtaak niet verzenden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Toegang aanvragen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Toegangsaanvraag naar de printer verzenden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Via het netwerk verbonden. Keur de aanvraag goed op de printer." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Via het netwerk verbonden." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Via het netwerk verbonden. Kan de printer niet beheren." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Toegang is op de printer geweigerd." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "De toegangsaanvraag is mislukt vanwege een time-out." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "De verbinding met het netwerk is verbroken." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "De verbinding met de printer is verbroken. Controleer of de printer nog is aangesloten." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Er kan geen nieuwe taak worden gestart omdat de printer bezig is. De huidige printerstatus is %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Printerstatus" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Er kan geen nieuwe taak worden gestart. Er is geen PrintCore geladen in de sleuf {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Er kan geen nieuwe taak worden gestart. Er is geen materiaal geladen in de sleuf {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Er is onvoldoende materiaal voor de spool {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "Afwijkende PrintCore (Cura: {0}, Printer: {1}) geselecteerd voor de extruder {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Afwijkend materiaal (Cura: {0}, Printer: {1}) geselecteerd voor de extruder {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "De PrintCore {0} is niet correct gekalibreerd. Op de printer moet XY-kalibratie worden uitgevoerd." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Weet u zeker dat u met de geselecteerde configuratie wilt printen?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "De configuratie of kalibratie van de printer komt niet overeen met de configuratie van Cura. Slice voor het beste resultaat altijd voor de PrintCores en materialen die in de printer zijn ingevoerd." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "De configuratie komt niet overeen" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "De gegevens worden naar de printer verzonden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Annuleren" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Gegevens Verzenden" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Kan geen gegevens naar de printer verzenden. Is er nog een andere taak actief?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Printen afbreken..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Print afgebroken. Controleer de printer" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Print onderbreken..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Print hervatten..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Synchroniseren met de printer" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Wilt u uw huidige printerconfiguratie gebruiken in Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "De PrintCores en/of materialen in de printer wijken af van de PrintCores en/of materialen in uw huidige project. Slice voor het beste resultaat altijd voor de PrintCores en materialen die in de printer zijn ingevoerd." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Verbinding Maken via Netwerk" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Deze printer is niet ingesteld voor het hosten van een groep aangesloten Ultimaker 3-printers." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Deze printer is de host voor een groep van {count} aangesloten Ultimaker 3-printers." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} heeft '{job_name}' voltooid. Haal de print op en bevestig dat het platform is leeggemaakt." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} is gereserveerd voor het printen van '{job_name}'. Wijzig de instellingen van de printer zodanig dat ze aansluiten bij de taak, zodat u kunt beginnen met printen." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Het verzenden van nieuwe taken is (tijdelijk) geblokkeerd. Nog bezig met het verzenden van de vorige printtaak." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Kan geen nieuwe printtaak verzenden: deze 3D-printer is (nog) niet ingesteld voor het hosten van een groep aangesloten Ultimaker 3-printers." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Bezig met verzenden van {file_name} naar groep {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "{file_name} is verzonden naar groep {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Printtaken weergeven" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Opent de printtaken-interface in uw browser." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Kan de printtaak niet naar groep {cluster_name} verzenden." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Om ervoor te zorgen dat uw {machine_name} van de nieuwste functies is voorzien, wordt aanbevolen om de firmware regelmatig bij te werken. U kunt dit doen op de {machine_name} (wanneer deze is verbonden met het netwerk) of via USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Nieuwe firmware voor %s beschikbaar" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Downloaden" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Geen toegang tot update-informatie." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Er zijn fouten opgetreden tijdens het openen van het SolidWorks-bestand. Controleer of u het bestand zonder problemen in SolidWorks kunt openen." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "Onderdelenbestand SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "Montagebestand SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Configureren" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Er is een fout opgetreden tijdens het starten van %s!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "G-code wijzigen" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura verzamelt geanonimiseerde slicing-statistieken. Dit kan bij de voorkeuren worden uitgeschakeld." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Gegevens verzamelen" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Verwijderen" @@ -472,14 +743,19 @@ msgstr "G-code-bestand" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Lagen" +msgid "Layer view" +msgstr "Laagweergave" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Als draadprinten is ingeschakeld, geeft Cura lagen niet nauwkeurig weer" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Laagweergave" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "GIF-afbeelding" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Het geselecteerde materiaal is niet compatibel met de geselecteerde machine of configuratie." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Met het huidige materiaal is slicen niet mogelijk, omdat het materiaal niet compatibel is met de geselecteerde machine of configuratie." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Kan niet slicen" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Met de huidige instellingen is slicing niet mogelijk. De volgende instellingen bevatten fouten: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Slicen is niet mogelijk omdat de terugduwpijler of terugduwpositie(s) ongeldig zijn." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Er valt niets te slicen omdat geen van de modellen in het bouwvolume past. Schaal of roteer de modellen totdat deze passen." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Lagen verwerken" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informatie" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Instellingen per Model configureren" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Aanbevolen" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Aangepast" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "3MF-bestand" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Nozzle" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Door invoegtoepassingen bladeren" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Kan de invoegtoepassing-ID van {0} niet vinden" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Waarschuwing" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Invoegtoepassingbrowser" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Solide" +msgid "Solid view" +msgstr "Solide weergave" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "G-code parseren" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Details van de G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Zorg ervoor dat de G-code geschikt is voor uw printer en de printerconfiguratie voordat u het bestand verzendt. Mogelijk is de weergave van de G-code niet nauwkeurig." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Cura-project 3MF-bestand" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Upgrades selecteren" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Platform kalibreren" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Buitenwand" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Binnenwanden" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Skin" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Vulling" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Supportvulling" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Verbindingsstructuur" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Supportstructuur" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Skirt" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Beweging" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Intrekkingen" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Overig(e)" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Vooraf geslicet bestand {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Geen materiaal ingevoerd" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Onbekend materiaal" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Nieuwe locatie vinden voor objecten" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Locatie vinden" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Kan binnen het werkvolume niet voor alle objecten een locatie vinden" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Kan locatie niet vinden" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Het Bestand Bestaat Al" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "Het bestand {0} bestaat al. Weet u zeker dat u dit bestand wilt overschrijven?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Aangepast" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Aangepast materiaal" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Het geselecteerde materiaal is niet compatibel met de geselecteerde machine of configuratie." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Niet-compatibel materiaal" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Het materiaal is niet meer compatibel met de huidige printer vanwege de geselecteerde materiaaldiameter." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Ongedaan maken" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Maak wijzigen van de materiaaldiameter ongedaan." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" msgstr "Kan het profiel niet exporteren als {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Kan het profiel niet exporteren als {0}: de invoegtoepassing voor de schrijver heeft een fout gerapporteerd." +msgstr "Kan het profiel niet exporteren als {0}: Invoegtoepassing voor de schrijver heeft een fout gerapporteerd." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Het profiel is geëxporteerd als {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Exportgegevens" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" msgstr "Kan het profiel niet importeren uit {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Het profiel {0} is geïmporteerd" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Het profiel {0} heeft een onbekend bestandstype of is beschadigd." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Aangepast profiel" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Er ontbreekt een kwaliteitstype in het profiel." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Kan geen kwaliteitstype {0} vinden voor de huidige configuratie." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "De hoogte van het bouwvolume is verminderd wegens de waarde van de instelling “Printvolgorde”, om te voorkomen dat de rijbrug tegen geprinte modellen botst." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Werkvolume" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Objecten verveelvoudigen en plaatsen" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Object plaatsen" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Er is een fatale fout opgetreden die niet kan worden hersteld!

\n" -"

Gebruik de onderstaande informatie om een bugrapport te plaatsen op http://github.com/Ultimaker/Cura/issues

\n" -" " +msgstr "

Er is een fatale fout opgetreden die niet kan worden hersteld!

\n

Gebruik de onderstaande informatie om een bugrapport te plaatsen op http://github.com/Ultimaker/Cura/issues

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Webpagina openen" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Machines laden..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Scene instellen..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Interface laden..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Er kan slechts één G-code-bestand tegelijkertijd worden geladen. Het importeren van {0} is overgeslagen" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (Breedte)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (Hoogte)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Vorm van het platform" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Centraal oorsprongpunt" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Verwarmd bed" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Versie G-code" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Afstand van de linkerkant van de printkop tot het midden van de nozzle. Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en de printkop te voorkomen." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Afstand van de voorkant van de printkop tot het midden van de nozzle. Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en de printkop te voorkomen." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Afstand van de rechterkant van de printkop tot het midden van de nozzle. Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en de printkop te voorkomen." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y max" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Afstand van de achterkant van de printkop tot het midden van de nozzle. Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en de printkop te voorkomen." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Hoogte rijbrug" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Het hoogteverschil tussen de punt van de nozzle en het rijbrugsysteem (X- en Y-as). Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en het rijbrugsysteem te voorkomen" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Aantal extruders" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "De nominale diameter van het filament dat wordt ondersteund door de printer. De exacte diameter wordt overschreven door het materiaal en/of het profiel." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Materiaaldiameter" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Maat nozzle" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Start G-code" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "G-code-opdrachten die aan het begin worden uitgevoerd." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Eind G-code" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "G-code-opdrachten die aan het eind worden uitgevoerd." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Nozzle-instellingen" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Nozzle-offset X" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Nozzle-offset Y" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Start-G-code van extruder" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Eind-G-code van extruder" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D-instellingen" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Opslaan" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Printen naar: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Extrudertemperatuur: %1/%2°C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Printbedtemperatuur: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Printen" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Wijzigingenlogboek" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Onbekende foutcode: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Verbinding Maken met Printer in het Netwerk" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n" -"\n" -"Selecteer uw printer in de onderstaande lijst:" +msgstr "Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n\nSelecteer uw printer in de onderstaande lijst:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Toevoegen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Bewerken" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Verwijderen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Vernieuwen" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Raadpleeg de handleiding voor probleemoplossing bij printen via het netwerk als uw printer niet in de lijst wordt vermeld" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Type" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Onbekend" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Firmwareversie" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Adres" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "De printer op dit adres heeft nog niet gereageerd." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Verbinden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Printeradres" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Voer het IP-adres of de hostnaam van de printer in het netwerk in." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "OK" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Verbinding maken met een printer" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "De configuratie van de printer in Cura laden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Configuratie Activeren" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Deze printer is niet ingesteld voor het hosten van een groep aaneengesloten Ultimaker 3-printers" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Deze printer is de host voor een groep van %1 aaneengesloten Ultimaker 3-printers" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Printen via netwerk" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Printen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 is niet ingesteld voor het hosten van een groep aangesloten Ultimaker 3-printers" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Printen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Gereserveerd" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Gereed" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Voorbereiden" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Beschikbaar" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Voltooid op: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Platform leegmaken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Voorbereiden om te printen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Accepteert geen printtaken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Opent de pagina met printtaken in uw standaard webbrowser." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Printtaken weergeven" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "PRINTERGROEP" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Printtaken" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Printen" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "In wachtrij" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Wacht op wijziging van configuratie" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Printers" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Printers weergeven" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Configuratie Cura SolidWorks-invoegtoepassing" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Standaard kwaliteit van de geëxporteerde STL:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Altijd vragen" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Altijd Fijne kwaliteit gebruiken" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Altijd Grove kwaliteit gebruiken" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "SolidWorks-bestand importeren als STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Kwaliteit van de geëxporteerde STL" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Kwaliteit" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Grof" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Fijn" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Actieve scripts voor nabewerking wijzigen" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Weergavemodus: lagen" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Kleurenschema" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Materiaalkleur" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Lijntype" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Compatibiliteitsmodus" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Bewegingen weergeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Helpers weergeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Shell weergeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Vulling weergeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Alleen bovenlagen weergegeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "5 gedetailleerde lagen bovenaan weergeven" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Boven-/onderkant" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Binnenwand" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Effenen" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Instellingen selecteren" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Instellingen Selecteren om Dit Model Aan te Passen" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filteren..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Alles weergeven" @@ -1613,27 +2083,45 @@ msgstr "Openen" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Invoegtoepassingen zoeken en bijwerken" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Hier vindt u een lijst met invoegtoepassingen van derden." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Upgrade" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Geïnstalleerd" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Licentieovereenkomst invoegtoepassing" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " invoegtoepassing bevat een licentie.\nU moet akkoord gaan met deze licentie om deze invoegtoepassing te mogen installeren.\nGaat u akkoord met onderstaande voorwaarden?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Ja, ik ga akkoord" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Nee, ik ga niet akkoord" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Alles is in orde! De controle is voltooid." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Niet met een printer verbonden" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Printer accepteert geen opdrachten" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "In onderhoud. Controleer de printer" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Verbinding met de printer is verbroken" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Printen..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Gepauzeerd" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Voorbereiden..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Verwijder de print" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Hervatten" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pauzeren" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Printen Afbreken" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Printen afbreken" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Weet u zeker dat u het printen wilt afbreken?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"U hebt enkele profielinstellingen aangepast.\n" -"Wilt u deze instellingen behouden of verwijderen?" +msgstr "U hebt enkele profielinstellingen aangepast.\nWilt u deze instellingen behouden of verwijderen?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Aangepast" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Altijd vragen" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Verwijderen en nooit meer vragen" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Behouden en nooit meer vragen" @@ -1948,7 +2434,7 @@ msgstr "Informatie" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 msgctxt "@label" msgid "Display Name" -msgstr "Naam Weergeven" +msgstr "Naam" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 msgctxt "@label" @@ -2038,7 +2524,7 @@ msgstr "Alles controleren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Berekend" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Eenheid" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Algemeen" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Taal:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Valuta:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Thema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "U moet de toepassing opnieuw starten voordat deze wijzigingen van kracht worden." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Automatisch slicen bij wijzigen van instellingen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Automatisch slicen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Gedrag kijkvenster" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Geef niet-ondersteunde gedeelten van het model een rode markering. Zonder ondersteuning zullen deze gedeelten niet goed worden geprint." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Overhang weergeven" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Verplaatst de camera zodanig dat wanneer een model wordt geselecteerd, het model in het midden van het beeld wordt weergegeven" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Camera centreren wanneer een item wordt geselecteerd" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Moet het standaard zoomgedrag van Cura worden omgekeerd?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Keer de richting van de camerazoom om." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Moet het zoomen in de richting van de muis gebeuren?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Zoomen in de richting van de muis" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Moeten modellen op het platform zodanig worden verplaatst dat ze elkaar niet meer doorsnijden?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Modellen gescheiden houden" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Moeten modellen in het printgebied omlaag worden gebracht zodat ze het platform raken?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Modellen automatisch op het platform laten vallen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Toon het waarschuwingsbericht in de G-code-lezer." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Waarschuwingsbericht in de G-code-lezer" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Moet de laag in de compatibiliteitsmodus worden geforceerd?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Compatibiliteitsmodus voor laagweergave forceren (opnieuw opstarten vereist)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Bestanden openen en opslaan" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Moeten modellen worden geschaald naar het werkvolume als ze te groot zijn?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Grote modellen schalen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Een model wordt mogelijk extreem klein weergegeven als de eenheden bijvoorbeeld in meters zijn in plaats van in millimeters. Moeten dergelijke modellen worden opgeschaald?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Extreem kleine modellen schalen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Moet er automatisch een op de printernaam gebaseerde voorvoegsel aan de naam van de printtaak worden toegevoegd?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Machinevoorvoegsel toevoegen aan taaknaam" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Dient er een samenvatting te worden weergegeven wanneer een projectbestand wordt opgeslagen?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Dialoogvenster voor samenvatting weergeven tijdens het opslaan van een project" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Standaardgedrag tijdens het openen van een projectbestand" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Standaardgedrag tijdens het openen van een projectbestand: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Altijd vragen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Altijd als project openen" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Altijd modellen importeren" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Wanneer u wijzigingen hebt aangebracht aan een profiel en naar een ander profiel wisselt, wordt een dialoogvenster weergegeven waarin u wordt gevraagd of u de aanpassingen wilt behouden. U kunt ook een standaardgedrag kiezen en het dialoogvenster nooit meer laten weergeven." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Profiel overschrijven" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Privacy" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Moet Cura op updates controleren wanneer het programma wordt gestart?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Bij starten op updates controleren" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Mogen anonieme gegevens over uw print naar Ultimaker worden verzonden? Opmerking: er worden geen modellen, IP-adressen of andere persoonlijk identificeerbare gegevens verzonden of opgeslagen." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "(Anonieme) printgegevens verzenden" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Printers" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "Wachten op een printtaak" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profielen" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Profiel exporteren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materialen" @@ -2472,12 +2958,12 @@ msgid "Import Material" msgstr "Materiaal Importeren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" msgstr "Kon materiaal %1 niet importeren: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "Materiaal %1 is geïmporteerd" @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Materiaal Exporteren" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" msgstr "Exporteren van materiaal naar %1 is mislukt: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Materiaal is geëxporteerd naar %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Printer Toevoegen" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Printer Toevoegen" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Buitenwand" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Binnenwanden" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Skin" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Vulling" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Supportvulling" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Verbindingsstructuur" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Supportstructuur" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Beweging" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Intrekkingen" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Overig(e)" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00u 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\n" -"Cura is er trots op gebruik te maken van de volgende opensourceprojecten:" +msgstr "Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Indeling voor gegevensuitwisseling" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Ondersteuningsbibliotheek voor wetenschappelijke berekeningen" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "SVG-pictogrammen" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profiel:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Sommige waarden of aanpassingen van instellingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n\nKlik om het profielbeheer te openen." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Zoeken..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Waarde naar alle extruders kopiëren" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Deze instelling verbergen" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Deze instelling verbergen" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Deze instelling zichtbaar houden" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Zichtbaarheid van instelling configureren..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n" -"\n" -"Klik om deze instellingen zichtbaar te maken." +msgstr "Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n\nKlik om deze instellingen zichtbaar te maken." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Deze instelling heeft een andere waarde dan in het profiel.\n" -"\n" -"Klik om de waarde van het profiel te herstellen." +msgstr "Deze instelling heeft een andere waarde dan in het profiel.\n\nKlik om de waarde van het profiel te herstellen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n" -"\n" -"Klik om de berekende waarde te herstellen." +msgstr "Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n\nKlik om de berekende waarde te herstellen." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Instelling voor Printen" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Instelling voor printen uitgeschakeld\n" -"G-code-bestanden kunnen niet worden aangepast" +msgstr "Instelling voor printen uitgeschakeld\nG-code-bestanden kunnen niet worden aangepast" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00u 00min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Tijdsinformatie" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Printtijd" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Aanbevolen instellingen voor printen

Print met de aanbevolen instellingen voor de geselecteerde printer en kwaliteit, en het geselecteerde materiaal." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Aangepaste instellingen voor printen

Print met uiterst precieze controle over elk detail van het slice-proces." @@ -2807,7 +3253,7 @@ msgstr "Beel&d" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automatisch: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Er is geen printer aangesloten" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Hotend" +msgid "Extruder" +msgstr "Extruder" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "De doeltemperatuur van de hot-end. De hot-end wordt verwarmd of afgekoeld totdat deze temperatuur bereikt is. Als deze waarde ingesteld is op 0, wordt de verwarming van de hot-end uitgeschakeld." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "De huidige temperatuur van deze extruder." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "De kleur van het materiaal in deze extruder." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Het materiaal in deze extruder." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "De nozzle die in deze extruder geplaatst is." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Platform" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "De doeltemperatuur van het verwarmde bed. Het bed wordt verwarmd of afgekoeld totdat deze temperatuur bereikt is. Als deze waarde ingesteld is op 0, wordt de verwarming van het bed uitgeschakeld." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "De huidige temperatuur van het verwarmde bed." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "De temperatuur waarnaar het bed moet worden voorverwarmd." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Annuleren" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Voorverwarmen" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Verwarm het bed voordat u gaat printen. U kunt doorgaan met het aanpassen van uw print terwijl het bed wordt verwarmd. Zo hoeft u niet te wachten totdat het bed opgewarmd is wanneer u gereed bent om te printen." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Actieve print" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Taaknaam" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Printtijd" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Geschatte resterende tijd" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Zichtbaarheid Instelling Configureren..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Laad een 3D-model" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Gereed om te slicen" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Slicen..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Gereed voor %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Kan Niet Slicen" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Slicen is niet beschikbaar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Voorbereiden" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Annuleren" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Actief Uitvoerapparaat Selecteren" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Bestand(en) openen" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Help" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Bestand Openen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Weergavemodus" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Instellingen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Nieuw project" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Weet u zeker dat u een nieuw project wilt starten? Hiermee wordt het platform leeggemaakt en worden eventuele niet-opgeslagen instellingen verwijderd." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Invoegtoepassing installeren" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Bestand(en) openen" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Binnen de door u geselecteerde bestanden zijn een of meer G-code-bestanden aangetroffen. U kunt maximaal één G-code-bestand tegelijk openen. Selecteer maximaal één bestand als u dit wilt openen als G-code-bestand." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Bij opnieuw opslaan projectsamenvatting niet weergeven" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Opslaan" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Voorbereiden" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Controleren" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Laaghoogte" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Printsnelheid" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Langzamer" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Sneller" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Vulling" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Zonder vulling blijft uw model hol en heeft deze weinig sterkte." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Met lichte vulling (20%) krijgt uw model een gemiddelde sterkte." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Met een dichte vulling (50%) krijgt uw model een bovengemiddelde sterkte." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Met solide vulling (100%) is uw model volledig massief." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Geleidelijk" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Met geleidelijke vulling neemt de hoeveelheid vulling naar boven toe." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Geleidelijke vulling" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Support genereren" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Genereer structuren om delen van het model met overhang te ondersteunen. Zonder deze structuren zakken dergelijke delen in tijdens het printen." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Extruder voor supportstructuur" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Selecteren welke extruder voor support wordt gebruikt. Deze optie zorgt ervoor dat onder het model ondersteuning wordt geprint, om te voorkomen dat dit doorzakt of dat er midden in de lucht moet worden geprint." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Hechting aan platform" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Het printen van een brim of raft inschakelen. Deze optie zorgt ervoor dat er extra materiaal rondom of onder het object wordt neergelegd, dat er naderhand eenvoudig kan worden afgesneden." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Hebt u hulp nodig om betere prints te krijgen?
Lees de Ultimaker Troubleshooting Guides (Handleiding voor probleemoplossing)" @@ -3406,8 +3838,8 @@ msgstr "Hebt u hulp nodig om betere prints te krijgen?
Lees de U msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Geselecteerd model printen met %1" +msgstr[1] "Geselecteerde modellen printen met %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,587 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Engine-logboek" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Materiaal" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Materiaalcompatibiliteit controleren" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Klik om de materiaalcompatibiliteit te controleren op Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profiel:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Sommige waarden voor instellingen/overschrijvingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n" -"\n" -"Klik om het profielbeheer te openen." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Biedt een manier om de machine-instellingen (zoals bouwvolume, maat nozzle, enz.) te wijzigen" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Actie machine-instellingen" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Biedt de röntgenweergave." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Röntgenweergave" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Deze optie biedt ondersteuning voor het lezen van X3D-bestanden." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "X3D-lezer" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Schrijft G-code naar een bestand." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "G-code-schrijver" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Dump de inhoud van alle instellingen naar een HTML-bestand." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Godmodus" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Accepteert G-code en verzendt deze code via wifi naar een Doodle3D WiFi-Box." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Hiermee geeft u de wijzigingen weer ten opzichte van de laatst gecontroleerde versie." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Wijzigingenlogboek" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Hiermee maakt u een afgevlakte versie van het gewijzigde profiel." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Profielvlakker" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Hiermee accepteert u G-code en verzendt u deze code naar een printer. Via de invoegtoepassing kan tevens de firmware worden bijgewerkt." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "USB-printen" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Biedt hotplug- en schrijfondersteuning voor verwisselbare stations." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Invoegtoepassing voor Verwijderbaar uitvoerapparaat" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Hiermee beheert u netwerkverbindingen naar Ultimaker 3-printers" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "UM3-netwerkverbinding" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "UM3-netwerkverbinding (Cluster)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Controleert op firmware-updates." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Firmware-updatecontrole" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Hiermee hebt u de mogelijkheid bepaalde bestanden via SolidWorks te openen. De bestanden worden vervolgens geconverteerd en in Cura geladen" #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "SolidWorks-integratie" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Uitbreiding waarmee door de gebruiker gemaakte scripts voor nabewerking kunnen worden gebruikt" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Nabewerking" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Slaat na het aanbrengen van wijzigingen automatisch Voorkeuren, Machines en Profielen op." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Automatisch Opslaan" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Verzendt anonieme slice-informatie. Dit kan bij de voorkeuren worden uitgeschakeld." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Slice-informatie" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Biedt mogelijkheden om materiaalprofielen op XML-basis te lezen en te schrijven." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Materiaalprofielen" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Biedt ondersteuning voor het importeren van profielen uit oudere Cura-versies." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Lezer voor Profielen van oudere Cura-versies" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Biedt ondersteuning voor het importeren van profielen uit G-code-bestanden." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "G-code-profiellezer" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Biedt een laagweergave." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Laagweergave" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.5 naar Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Versie-upgrade van 2.5 naar 2.6." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.7 naar Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Versie-upgrade van 2.7 naar 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.6 naar Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Versie-upgrade van 2.6 naar 2.7." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.1 naar Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Versie-upgrade van 2.1 naar 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.2 naar Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Versie-upgrade van 2.2 naar 2.4." #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Hiermee wordt het genereren van printbare geometrie van 2D-afbeeldingsbestanden mogelijk." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Afbeeldinglezer" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Voorziet in de koppeling naar het slicing-back-end van de CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "CuraEngine-back-end" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Biedt de Instellingen per Model." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Gereedschap voor Instellingen per Model" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Biedt ondersteuning voor het lezen van 3MF-bestanden." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "3MF-lezer" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Zoek, beheer en installeer nieuwe invoegtoepassingen." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Invoegtoepassingbrowser" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Biedt een normale, solide rasterweergave." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Solide weergave" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Hiermee kunt u G-code-bestanden laden en weergeven." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "G-code-lezer" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Biedt ondersteuning voor het exporteren van Cura-profielen." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Cura-profielschrijver" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Biedt ondersteuning voor het schrijven van 3MF-bestanden." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "3MF-schrijver" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Biedt machineacties voor Ultimaker-machines (zoals wizard voor bedkalibratie, selecteren van upgrades, enz.)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Acties Ultimaker-machines" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Biedt ondersteuning bij het importeren van Cura-profielen." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Cura-profiellezer" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Röntgen" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Accepteert G-code en verzendt deze code via WiFi naar een Doodle3D WiFi-Box." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Doodle3D-printen" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Printen via Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Printen via" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Scanners inschakelen..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "X3G-bestand" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Opslaan op Verwisselbaar Station {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Kan niet opslaan als {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Houd er rekening mee dat u het SolidWorks-bestand handmatig opnieuw moet openen. Het opnieuw laden van het bestand zal geen effect hebben." + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Lagen" + +#~ msgid "Browse plugins" +#~ msgstr "Vind invoegtoepassingen" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Solide" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Het bestand {0} bestaat al. Weet u zeker dat u dit bestand wilt overschrijven?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Kan het profiel niet exporteren als {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Kan het profiel niet exporteren als {0}: de invoegtoepassing voor de schrijver heeft een fout gerapporteerd." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Het profiel is geëxporteerd als {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Kan het profiel niet importeren uit {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Doodle3D-instellingen" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Printen naar: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Extrudertemperatuur: %1/%2°C" + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#~ msgctxt "@label" +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: PACKAGE VERSION\n" +#~ "Report-Msgid-Bugs-To: \n" +#~ "POT-Creation-Date: 2016-09-13 17:41+0200\n" +#~ "PO-Revision-Date: 2016-09-29 13:44+0200\n" +#~ "Last-Translator: FULL NAME \n" +#~ "Language-Team: LANGUAGE \n" +#~ "Language: \n" +#~ "MIME-Version: 1.0\n" +#~ "Content-Type: text/plain; charset=UTF-8\n" +#~ "Content-Transfer-Encoding: 8bit\n" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Printbedtemperatuur: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Weergavemodus: lagen" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Kon materiaal %1 niet importeren: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Materiaal %1 is geïmporteerd" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Exporteren van materiaal naar %1 is mislukt: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Materiaal is geëxporteerd naar %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Hotend" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Weergavemodus" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Printen" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Zonder vulling blijft uw model hol en heeft deze weinig sterkte." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Met lichte vulling (20%) krijgt uw model een gemiddelde sterkte." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Met een dichte vulling (50%) krijgt uw model een bovengemiddelde sterkte." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Met solide vulling (100%) is uw model volledig massief." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Geleidelijk" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Biedt ondersteuning voor het schrijven van X3G-bestanden." + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G-schrijver" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/nl/fdmextruder.def.json.po b/resources/i18n/nl_NL/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/nl/fdmextruder.def.json.po rename to resources/i18n/nl_NL/fdmextruder.def.json.po index eb6705f034..989f366539 100644 --- a/resources/i18n/nl/fdmextruder.def.json.po +++ b/resources/i18n/nl_NL/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:30+0200\n" "Last-Translator: Bothof \n" "Language-Team: Dutch\n" -"Language: Dutch\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: nl\n" -"Country-Code: NL\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "De extruder train die voor het printen wordt gebruikt. Deze wordt gebrui #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Nozzle-ID" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "De nozzle-ID voor een extruder train, bijvoorbeeld \"AA 0.4\" en \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/nl/fdmprinter.def.json.po b/resources/i18n/nl_NL/fdmprinter.def.json.po similarity index 89% rename from resources/i18n/nl/fdmprinter.def.json.po rename to resources/i18n/nl_NL/fdmprinter.def.json.po index e2c1032faa..18b692c116 100644 --- a/resources/i18n/nl/fdmprinter.def.json.po +++ b/resources/i18n/nl_NL/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Dutch\n" -"Language: Dutch\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: nl\n" -"Country-Code: NL\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "De naam van uw 3D-printermodel." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Machinevarianten tonen" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -85,7 +83,7 @@ msgstr "GUID van het materiaal. Deze optie wordt automatisch ingesteld. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Wachten op verwarmen van platform" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -95,7 +93,7 @@ msgstr "Hiermee bepaalt u of de opdracht moet worden ingevoegd dat bij aanvang m #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Wachten op verwarmen van nozzle" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -105,7 +103,7 @@ msgstr "Hiermee bepaalt u of bij aanvang moet worden gewacht totdat de nozzle op #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Materiaaltemperatuur invoegen" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -115,7 +113,7 @@ msgstr "Hiermee bepaalt u of aan het begin van de g-code opdrachten voor de nozz #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Platformtemperatuur invoegen" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -125,7 +123,7 @@ msgstr "Hiermee bepaalt u of aan het begin van de g-code opdrachten voor de plat #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Machinebreedte" #: fdmprinter.def.json msgctxt "machine_width description" @@ -135,7 +133,7 @@ msgstr "De breedte (X-richting) van het printbare gebied." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Machinediepte" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -145,7 +143,7 @@ msgstr "De diepte (Y-richting) van het printbare gebied." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Vorm van het platform" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -165,7 +163,7 @@ msgstr "Ovaal" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Machinehoogte" #: fdmprinter.def.json msgctxt "machine_height description" @@ -175,7 +173,7 @@ msgstr "De hoogte (Z-richting) van het printbare gebied." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Heeft verwarmd platform" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -185,7 +183,7 @@ msgstr "Hiermee geeft u aan of een verwarmd platform aanwezig is." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Is oorsprongpunt centraal" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -305,17 +303,17 @@ msgstr "Het type g-code dat moet worden gegenereerd" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumetrisch)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -400,12 +398,12 @@ msgstr "Het hoogteverschil tussen de punt van de nozzle en het rijbrugsysteem (X #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Nozzle-ID" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "De nozzle-ID voor een extruder train, bijvoorbeeld \"AA 0.4\" en \"BB 0.8\"." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -650,12 +648,12 @@ msgstr "Breedte van een enkele wandlijn voor alle wandlijnen, behalve de buitens #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Lijnbreedte bovenskin" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Breedte van een enkele lijn aan de bovenkant van de print." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -740,12 +738,12 @@ msgstr "Breedte van een enkele lijn van de primepijler." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Lijnbreedte eerste laag" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Vermenigvuldiging van de lijnbreedte van de eerste laag. Door deze te verhogen kan de hechting aan het bed worden verbeterd." #: fdmprinter.def.json msgctxt "shell label" @@ -757,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Shell" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Extruder buitenwand" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "De extruder train die voor het printen van de buitenwand wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Extruder binnenwand" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "De extruder train die voor het printen van de binnenwanden wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -795,7 +783,7 @@ msgstr "Wanddikte" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "De dikte van de wanden in horizontale richting. Het aantal wanden wordt bepaald door het delen van deze waarde door de breedte van de wandlijn." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -820,67 +808,67 @@ msgstr "Afstand van een beweging die ingevoegd is na de buitenwand, om de Z-naad #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Extruder bovenskin" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "De extruder train die voor het printen van de bovenste skinlaag wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Bovenste skinlagen" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Het aantal bovenste skinlagen. Doorgaans is één bovenste skinlaag voldoende om oppervlakken van hogere kwaliteit te verkrijgen." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Patroon bovenskin" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Het patroon van de bovenste lagen." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Lijnen" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrisch" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zigzag" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Lijnrichting bovenskin" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Een lijst met gehele getallen voor lijnrichtingen die moet worden gebruikt wanneer voor de bovenste skinlagen een lijn- of zigzagpatroon wordt gebruikt. Elementen uit de lijst worden tijdens het printen van de lagen opeenvolgend gebruikt. Wanneer het einde van de lijst is bereikt, wordt deze weer van voren af aan gestart. De lijstitems zijn gescheiden door komma's en de hele lijst is binnen vierkante haken geplaatst. Standaard wordt een lege lijst gebruikt, wat inhoudt dat de traditionele standaardhoeken (45 en 135 graden) worden gebruikt." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Extruder Boven-/Onderkant" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "De extruder train die voor het printen van de boven- en onderskin wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1075,12 +1063,12 @@ msgstr "Overal" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Dunne wanden printen" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Print delen van het model die horizontaal dunner zijn dan de maat van de nozzle." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1095,12 +1083,12 @@ msgstr "De mate van offset die wordt toegepast op alle polygonen in elke laag. M #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Eerste laag Horizontale uitbreiding" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "De mate van offset die wordt toegepast op alle polygonen in de eerste laag. Met negatieve waarden compenseert u het samenpersen van de eerste laag, ook wel 'olifantenpoot' genoemd." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1127,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Willekeurig" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Scherpste hoek" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1147,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "De Y-coördinaat van de positie nabij waar met het printen van elk deel van een laag moet worden begonnen." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Voorkeur van naad en hoek" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Instellen of hoeken in het model invloed hebben op de positie van de naad. Geen wil zeggen dat hoeken geen invloed hebben op de positie van de naad. Met Naad verbergen is de kans groter dat de naad op een binnenhoek komt. Met Naad zichtbaar maken is de kans groter dat de naad op een buitenhoek komt. Met Naad verbergen of Naad zichtbaar maken is de kans groter dat de naad op een binnen- of buitenhoek komt." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Geen" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Naad verbergen" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Naad zichtbaar maken" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Naad verbergen of zichtbaar maken" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Relatieve Z-naad" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Als deze optie ingeschakeld is, zijn de Z-naadcoördinaten relatief ten opzichte van het midden van elk deel. Als de optie uitgeschakeld is, staan de coördinaten voor een absolute positie op het platform." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1167,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Wanneer het model kleine verticale gaten heeft, kan er circa 5% berekeningstijd extra worden besteed aan het genereren van de boven- en onderskin in deze kleine ruimten. Indien u dit wenst, schakelt u de instelling uit." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Aantal Extra Wandlijnen Rond Skin" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Vervang het buitenste gedeelte van het patroon boven-/onderkant door een aantal concentrische lijnen. Het gebruik van 1 of 2 lijnen verbetert daken die op vulmateriaal beginnen." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1180,12 +1213,12 @@ msgstr "Vulling" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Vullingextruder" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "De extruder train die voor het printen van de vulling wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1214,8 +1247,8 @@ msgstr "Vulpatroon" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor wordt bespaard op materiaalkosten. De raster-, driekhoeks-, kubische, viervlaks- en concentrische patronen worden elke laag volledig geprint. Kubische en viervlaksvulling veranderen elke laag voor een meer gelijke krachtsverdeling in elke richting." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor wordt bespaard op materiaalkosten. De raster-, driehoeks-, kubische, achtvlaks-, afgeknotte kubus- en concentrische patronen worden elke laag volledig geprint. Kubische, afgeknotte kubus- en achtvlaksvullingen veranderen elke laag voor een meer gelijke krachtsverdeling in elke richting." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1244,8 +1277,13 @@ msgstr "Kubische onderverdeling" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Viervlaks" +msgid "Octet" +msgstr "Octet" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Afgeknotte kubus" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1262,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zigzag" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Kruis" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Kruis 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Vullijnen verbinden" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Verbindt de uiteinden waar het vulpatroon bij de binnenwand komt met een lijn die de vorm van de binnenwand volgt. Als u deze instelling inschakelt, kan de vulling beter hechten aan de wanden en wordt de invloed van de vulling op de kwaliteit van de verticale oppervlakken kleiner. Als u deze instelling uitschakelt, wordt er minder materiaal gebruikt." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1310,7 +1368,7 @@ msgstr "Overlappercentage Skin" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "De mate van overlap tussen de skin en de wanden als percentage van de lijnbreedte. Met een lichte overlap kunnen de wanden goed hechten aan de skin. Dit is een percentage van de gemiddelde lijnbreedte van de skinlijnen en de binnenste wand." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1383,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Genereer geen gebieden met vulling die kleiner zijn dan deze waarde (gebruik in plaats daarvan een skin)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Skin uitbreiden naar vulling" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Verwijderingsbreedte skin" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Breid skingebieden van de boven- en/of onderskin van een plat oppervlak uit. Standaard stopt de skin onder de wandlijnen rond de vulling. Bij een lage dichtheid van de vulling kunnen hierdoor echter gaten ontstaan. Met deze instelling worden de skins uitgebreid tot onder de wandlijnen zodat de vulling op de volgende laag op de skin rust." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "De grootste breedte van skingebieden die verwijderd moeten worden. Elk skingebied dat smaller is dan deze waarde zal verdwijnen. Hiermee kan op tijd en materiaal worden bespaard bij het printen van de bovenste/onderste skinlaag op schuine vlakken in het model." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Bovenskin uitbreiden naar vulling" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Verwijderingsbreedte bovenste skinlaag" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Breid bovenskingebieden (gebieden waarboven zich lucht bevindt) uit, zodat deze de bovenliggende vulling ondersteunen." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "De grootste breedte van delen van bovenste skingebieden die verwijderd moeten worden. Elk skingebied dat smaller is dan deze waarde, zal verdwijnen. Hiermee kan op tijd en materiaal worden bespaard bij het printen van de bovenste/onderste skinlaag op schuine vlakken in het model." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Onderskin uitbreiden naar vulling" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Verwijderingsbreedte onderste skinlaag" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Breid onderskingebieden (gebieden waaronder zich lucht bevindt) uit, zodat deze worden verankerd door de boven- en onderliggende vullagen." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "De grootste breedte van delen van de onderste skingebieden die verwijderd moeten worden. Elk skingebied dat smaller is dan deze waarde, zal verdwijnen. Hiermee kan op tijd en materiaal worden bespaard bij het printen van de onderste skinlaag op schuine vlakken in het model." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1419,8 +1477,28 @@ msgstr "Uitbreidingsafstand van skin" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "De afstand waarmee de skin wordt uitgebreid in de vulling. De standaardafstand is voldoende om het gat tussen de vullijnen te overbruggen. Bij een lage vuldichtheid wordt hiermee voorkomen dat gaten ontstaan in de skin waar deze bij de wand komt. Een kleinere afstand is over het algemeen voldoende." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "De afstand waarmee de skin wordt uitgebreid in de vulling. Bij hogere waarden hecht de skin beter aan het vulpatroon en hechten de wanden van aangrenzende lagen beter aan de skin. Bij lagere waarden wordt er minder materiaal gebruikt." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Uitbreidingsafstand van bovenste skinlaag" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "De afstand waarmee de bovenste skinlagen worden uitgebreid in de vulling. Bij hogere waarden hecht de skin beter aan het vulpatroon en hechten de wanden op de bovenliggende laag beter aan de skin. Bij lagere waarden wordt er minder materiaal gebruikt." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Uitbreidingsafstand van onderste skinlaag" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "De afstand waarmee de onderste skinlagen worden uitgebreid in de vulling. Bij hogere waarden hecht de skin beter aan het vulpatroon en de wanden van de onderliggende laag. Bij lagere waarden wordt er minder materiaal gebruikt." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1785,12 +1863,12 @@ msgstr "De snelheid waarmee alle binnenwanden worden geprint. Als u de binnenwan #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Snelheid bovenskin" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "De snelheid waarmee bovenste skinlagen worden geprint." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1802,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "De snelheid waarmee boven-/onderlagen worden geprint." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2025,12 +2093,12 @@ msgstr "De acceleratie tijdens het printen van alle binnenwanden." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Acceleratie bovenskin" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "De acceleratie tijdens het printen van de bovenste skinlagen." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2042,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "De acceleratie tijdens het printen van de boven-/onderlagen." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2225,12 +2283,12 @@ msgstr "De maximale onmiddellijke snelheidsverandering tijdens het printen van a #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Schok bovenskin" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "De maximale onmiddellijke snelheidsverandering tijdens het printen van de bovenste skinlagen." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2242,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "De maximale onmiddellijke snelheidsverandering tijdens het printen van de boven-/onderlagen." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2767,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zigzag" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Kruis" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2779,23 +2832,33 @@ msgstr "Verbind de zigzaglijnen. Hiermee versterkt u de zigzag-supportstructuur. #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Supportstructuur in Stukken Breken" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Sla enkele verbindingen tussen lijnen van de supportstructuur over zodat deze gemakkelijker kan worden weggebroken. Deze instelling is van toepassing op het zigzag-vulpatroon van de supportstructuur." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Grootte Supportstuk" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Sla elke N millimeter een verbinding tussen de lijnen van de supportstructuur over, zodat deze gemakkelijker kan worden weggebroken." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Aantal Lijnen Supportstuk" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Sla elke N verbindingslijnen één lijn over zodat de supportstructuur gemakkelijker kan worden weggebroken." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2930,32 +2993,32 @@ msgstr "De mate van offset die wordt toegepast op alle steunpolygonen in elke la #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Dikte vullaag supportvulling" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "De dikte per laag materiaal supportvulling. Deze waarde moet altijd een veelvoud van de laaghoogte zijn en wordt voor het overige afgerond." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Geleidelijke supportvulling traptreden" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Het aantal keren dat de dichtheid van de supportvulling wordt gehalveerd naarmate er verder onder het oppervlak wordt geprint. Gebieden die zich dichter bij het oppervlak bevinden, krijgen een hogere dichtheid, tot de waarde die is opgegeven in de optie Dichtheid supportvulling." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Geleidelijke supportvulling hoogte traptreden" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "De hoogte van de supportvulling van een bepaalde dichtheid voordat de dichtheid wordt gehalveerd." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3337,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"De horizontale afstand tussen de skirt en de eerste laag van de print.\n" -"Dit is de minimumafstand; als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." +msgstr "De horizontale afstand tussen de skirt en de eerste laag van de print.\nDit is de minimumafstand; als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3381,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Print de brim alleen aan de buitenkant van het model. Hiermee verkleint u de hoeveelheid brim die u achteraf moet verwijderen, zonder dat dit de hechting aan het printbed te zeer vermindert." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Z-offset Eerste Laag" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "De extruder wordt in deze mate gecorrigeerd ten opzichte van de normale hoogte van de eerste laag. Dit kan plus (verhoogd) of min (verlaagd) zijn. Sommige soorten filament hechten beter op het platform als de extruder iets hoger staat." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Z-offset Aflopende Lagen" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Wanneer de waarde niet is ingesteld op 0, dan wordt de Z-offset over zoveel lagen verkleind tot 0. Wanneer de waarde op 0 is ingesteld, blijft de Z-offset voor alle lagen in de print gelijk." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3391,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Als de raft is ingeschakeld, is dit het extra raftgebied rond het model dat ook van een raft wordt voorzien. Als u deze marge vergroot, krijgt u een stevigere raft, maar gebruikt u ook meer materiaal en houdt u minder ruimte over voor de print." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Raft effenen" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Deze instelling bepaalt hoeveel binnenhoeken in de raftcontour worden afgerond. Naar binnen gebogen hoeken worden tot een halve cirkel afgerond met een straal die gelijk is aan de hier opgegeven waarde. Met deze instellingen worden ook gaten in de raftcontour verwijderd die kleiner zijn dan een dergelijke cirkel." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3774,12 +3865,12 @@ msgstr "Veeg na het wisselen van de extruder het doorgevoerde materiaal van de n #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Zuiveringsvolume primepijler" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "De hoeveelheid filament die wordt gezuiverd tijdens afvegen aan de primepijler. Zuiveren wordt gebruikt om filament te compenseren dat tijdens inactiviteit van de nozzle wordt verloren via uitloop." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4066,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Maak de gespiraliseerde contouren vlak om de zichtbaarheid van de Z-naad te verminderen (de Z-naad mag in de print nauwelijks zichtbaar zijn, maar is nog wel zichtbaar in de laagweergave). Houd er rekening mee dat fijne oppervlaktedetails worden vervaagd door het effenen." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Relatieve Extrusie" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Gebruik relatieve extrusie in plaats van absolute extrusie. Bij het gebruik van relatieve E-steps wordt het nabewerken van G-code gemakkelijker. Deze optie wordt echter niet door alle printers ondersteund en kan lichte afwijkingen vertonen in de hoeveelheid afgezet materiaal ten opzichte van absolute E-steps. Ongeacht deze instelling wordt de extrusiemodus altijd ingesteld op absoluut voordat er een G-code-script wordt uitgevoerd.." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4076,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "experimenteel!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Printvolgorde van wanden optimaliseren" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optimaliseer de volgorde waarin wanden worden geprint om het aantal intrekbewegingen en de afgelegde afstand te verkleinen. Deze instelling is gunstig voor de meeste onderdelen. Bij sommige onderdelen duurt het printen echter langer. Controleer daarom de verwachte printtijd met en zonder optimalisatie." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4186,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "De snelheid waarmee de printkop tijdens coasting beweegt ten opzichte van de snelheid voor het doorvoerpad. Hiervoor wordt een waarde van iets minder dan 100% aangeraden, omdat de druk in de bowden-buis zakt tijdens een coasting-beweging." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Aantal Extra Wandlijnen Rond Skin" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Vervang het buitenste gedeelte van het patroon boven-/onderkant door een aantal concentrische lijnen. Het gebruik van 1 of 2 lijnen verbetert daken die op vulmateriaal beginnen." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4206,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Wissel de richting af waarin de boven-/onderlagen worden geprint. Normaal worden deze alleen diagonaal geprint. Met deze instelling worden de alleen-X- en alleen-Y-richtingen toegevoegd." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Luchtbelgrootte bij Kruis 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "De grootte van luchtbellen op kruispunten in het kruis 3D-patroon op punten waar het patroon zichzelf raakt." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Afwisselend luchtbellen in kruis 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Laat alleen luchtbellen achter in de helft van de kruispunten in het Kruis 3D-patroon en wisselt de plaats van de luchtbellen op punten waar het patroon zichzelf raakt." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4219,12 +4340,12 @@ msgstr "Print af en toe een deel vulling zodat het filament willekeurig opkrult #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Spaghettivulling traptreden" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Hiermee bepaalt u of u spaghettivulling print in de traptreden, of dat al het vulfilament aan het eind van de print wordt doorgevoerd." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4269,12 +4390,12 @@ msgstr "Past de dichtheid van de spaghettivulling aan. Houd er rekening mee dat #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Extra volume spaghettivulling" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Een correctievoorwaarde voor het aanpassen van het totale volume dat elke keer dat spaghettivulling wordt geprint, wordt doorgevoerd." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4506,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\n" -"Hierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." +msgstr "De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\nHierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4618,62 +4737,102 @@ msgstr "De afstand tussen de nozzle en horizontaal neergaande lijnen. Een groter #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Strijken inschakelen" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Ga nog een extra keer over de bovenlaag, echter zonder materiaal door te voeren. Hierdoor wordt de kunststof aan de bovenkant verder gesmolten, waardoor een gladder oppervlak wordt verkregen." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Alleen hoogste laag strijken" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Strijk alleen de allerlaatste laag van het voorwerp. Dit bespaart tijd als de daaronder gelegen lagen geen glad oppervlak vereisen." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Strijkpatroon" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Het patroon dat wordt gebruikt voor het strijken van oppervlakken." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concentrisch" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zigzag" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Tussenruimte strijklijnen" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "De afstand tussen de strijklijnen." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Strijkdoorvoer" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "De hoeveelheid materiaal, in verhouding tot een normale skinlijn, die tijdens het strijken moet worden doorgevoerd. Als de nozzle gevuld blijft, kunnen scheuren in de bovenlaag worden gevuld. Te hoge doorvoer leidt echter tot uitstulpingen aan de zijkant van het oppervlak." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Uitsparing strijken" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "De afstand die moet worden aangehouden tot de randen van het model. Strijken tot de rand van het raster kan leiden tot een gerafelde rand van de print." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Strijksnelheid" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "De snelheid waarmee over de bovenste laag wordt bewogen." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Strijkacceleratie" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "De acceleratie tijdens het strijken." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Schok strijken" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "De maximale onmiddellijke snelheidsverandering tijdens het strijken." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4735,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Omzettingsmatrix die moet worden toegepast op het model wanneer dit wordt geladen vanuit een bestand." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Wandextruder" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "De extruder train die voor het printen van de wanden wordt gebruikt. Deze wordt gebruikt in meervoudige doorvoer." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor wordt bespaard op materiaalkosten. De raster-, driekhoeks-, kubische, viervlaks- en concentrische patronen worden elke laag volledig geprint. Kubische en viervlaksvulling veranderen elke laag voor een meer gelijke krachtsverdeling in elke richting." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Viervlaks" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Skin uitbreiden naar vulling" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Breid skingebieden van de boven- en/of onderskin van een plat oppervlak uit. Standaard stopt de skin onder de wandlijnen rond de vulling. Bij een lage dichtheid van de vulling kunnen hierdoor echter gaten ontstaan. Met deze instelling worden de skins uitgebreid tot onder de wandlijnen zodat de vulling op de volgende laag op de skin rust." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Bovenskin uitbreiden naar vulling" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Breid bovenskingebieden (gebieden waarboven zich lucht bevindt) uit, zodat deze de bovenliggende vulling ondersteunen." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Onderskin uitbreiden naar vulling" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Breid onderskingebieden (gebieden waaronder zich lucht bevindt) uit, zodat deze worden verankerd door de boven- en onderliggende vullagen." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "De afstand waarmee de skin wordt uitgebreid in de vulling. De standaardafstand is voldoende om het gat tussen de vullijnen te overbruggen. Bij een lage vuldichtheid wordt hiermee voorkomen dat gaten ontstaan in de skin waar deze bij de wand komt. Een kleinere afstand is over het algemeen voldoende." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Enkele Zigzagverbindingen overslaan" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Sla enkele Zigzagverbindingen over zodat de supportstructuur gemakkelijker kan worden verbroken." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Aantal overslaan Zigzagverbinding" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Sla elke N verbindingslijnen één lijn over zodat de supportstructuur gemakkelijker kan worden verbroken." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Machinevarianten tonen" @@ -4897,4 +5116,4 @@ msgstr "Omzettingsmatrix die moet worden toegepast op het model wanneer dit word #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "Overlap Dubbele Doorvoer" +#~ msgstr "Overlap Dubbele Doorvoer" \ No newline at end of file diff --git a/resources/i18n/pl/cura.po b/resources/i18n/pl_PL/cura.po similarity index 75% rename from resources/i18n/pl/cura.po rename to resources/i18n/pl_PL/cura.po index e00c939c46..fd840d9fc2 100644 --- a/resources/i18n/pl/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -5,30 +5,88 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-08-03 16:14+0200\n" +"PO-Revision-Date: 2017-10-05 17:27+0200\n" "Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" "Language-Team: reprapy.pl\n" -"Language: Polish\n" +"Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pl\n" -"Country-Code: PL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.4\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Drukowanie zostaje przerwane" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Zablokowany" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Konieczne są działania" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Nie mogę rozpocząć drukowania" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą drukarek Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Wykończenia na: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Ta drukarka jest gospodarzem grupy %1 drukarek Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} skończyła drukowanie '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Drukowanie zakończone" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "W&tyczki" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Przeglądaj wtyczki..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Zainstalowane wtyczki..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Ustawienia drukarki" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Prześwietlenie" +msgid "X-Ray view" +msgstr "Widok X-Ray" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -40,40 +98,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "Plik GCode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Akceptuje G-code i wysyła je przez WiFi do Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Drukowanie Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "Drukuj z Doodle3D" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Drukuj z Doodle3D WiFi-Box" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Drukuj z Doodle3D WiFi-Box" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Łączenie z Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Anuluj" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Wysyłanie danych do Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Nie można wysłać danych do Doodle3D Connect. Czy inne zadanie jest aktywne?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Przetrzymywanie danych na Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Plik wysłany do Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Otwórz Connect.." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Drukuj z " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Włącz skanowanie urządzeń ..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Otwórz interfejs Doodle3D Connect" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -115,16 +202,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Nie można uruchomić nowego zadania, ponieważ drukarka jest zajęta lub nie jest podłączona." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Szczegółu druku" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Ta drukarka nie obsługuje drukowania USB, ponieważ korzysta z UltiGCode." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "Drukowanie przez USB" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Nie można uruchomić nowego zadania, ponieważ drukarka nie obsługuje drukowania poprzez USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Ostrzeżenie" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -136,10 +243,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Nie znaleziono oprogramowania wymaganego dla drukarki w %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "Plik X3G" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Oprogramowanie Drukarki" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -154,47 +261,79 @@ msgstr "Zapisz na dysk wymienny {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" -msgstr "Zapisywanie na dysk wymienny {0}" +msgstr "Zapisywanie na Dysk Wymienny {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Zapisywanie" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" -msgstr "Nie udało się zapisać do {0}: {1}" +msgstr "Nie mogę zapisać do {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Zapisano na dysk wymienny {0} jako {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Nie mogę znaleźć nazwy pliku podczas próby zapisu do {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Wyjmij" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Wyjmij urządzenie wymienne {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Nie można zapisać na wymiennym dysku {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Błąd" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Zapisano na dysk wymienny {0} jako {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Plik Zapisany" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Wyjmij" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Wyjmij urządzenie wymienne {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Wyjęto {0}. Możesz teraz bezpiecznie wyjąć dysk." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Bezpiecznie Odłącz Urządzenie" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -205,219 +344,351 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Dysk wymienny" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Drukuj przez sieć" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Drukuj przez sieć" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Wymagany dostęp do drukarki. Proszę zatwierdzić prośbę na drukarce" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Status połączenia" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Status połączenia" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Spróbuj ponownie" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Prześlij ponownie żądanie dostępu" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Dostęp do drukarki został zaakceptowany" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Brak dostępu do tej drukarki. Nie można wysłać zadania drukowania." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Poproś o dostęp" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Wyślij żądanie dostępu do drukarki" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Połączono przez sieć. Proszę zatwierdzić żądanie dostępu na drukarce." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Połączono przez sieć." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Połączono przez sieć. Brak dostępu do sterowania drukarką." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Żądanie dostępu zostało odrzucone na drukarce." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Żądanie dostępu nie powiodło się z powodu limitu czasu." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Połączenie z siecią zostało utracone." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Połączenie z drukarką zostało utracone. Sprawdź, czy drukarka jest podłączona." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Nie można uruchomić nowego zadania, drukarka jest zajęta. Aktualny stan drukarki to %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Status Drukarki" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Nie można uruchomić nowego zadania. Brak Printcore w slocie {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Nie można uruchomić nowego zadania. Brak materiału w slocie {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Nie ma wystarczającej ilości materiału na szpuli {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Różne PrintCore (Cura: {0}, Drukarka: {1}) wybrane dla ekstrudera {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Różne materiały (Cura: {0}, Drukarka: {1}) wybrane do dzyszy {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." msgstr "PrintCore {0} nie jest poprawnie skalibrowany. Kalibracja XY musi zostać wykonana na tej drukarce." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Czy na pewno chcesz drukować z wybraną konfiguracją?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Występuje niezgodność między konfiguracją lub kalibracją drukarki a Curą. Aby uzyskać najlepszy rezultat, zawsze tnij dla Print core'ów i materiałów włożonych do drukarki." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Niedopasowana konfiguracja" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Wysyłanie danych do drukarki" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Anuluj" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Wysyłanie danych" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Nie można wysłać danych do drukarki. Czy inna praca jest nadal aktywna?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Przerywanie drukowania..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Wydruk został przerwany. Sprawdź drukarkę" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Wstrzymywanie drukowania..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Wznawianie drukowania ..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Synchronizuj się z drukarką" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Czy chcesz używać bieżącej konfiguracji drukarki w programie Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "PrintCore'y i/lub materiały w drukarce różnią się od tych w obecnym projekcie. Dla najlepszego rezultatu, zawsze tnij dla wybranych PrinCore'ów i materiałów, które są umieszczone w drukarce." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Połącz przez sieć" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą podłączonych drukarek Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Ta drukarka jest gospodarzem grupy {count} podłączonych drukarek Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} skończyła drukowanie '{job_name}'. Proszę zabrać wydruk i potwierdzić oczyszczenie platformy roboczej." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} jest zarezerwowana do druku '{job_name}'. Proszę zmień konfigurację drukarki, żeby pasowała do zadania dla niej, aby rozpocząć drukowanie." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Wysyłanie nowych zadań (tymczasowo) zostało zablokowane, dalej wysyłane jest poprzednie zadanie." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Nie można wysłać nowego zadania: ta drukarka 3D nie jest (jeszcze) ustawiona jako gospodarz grupy podłączonych drukarek Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Wysyłanie {file_name} do grupy {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "Wysłano {file_name} do grupy {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Pokaż zadania druku" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Otwiera interfejs zadań druku w przeglądarce." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Nie można wysłać zadania do grupy {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Aby upewnić się że twoja {machine_name} jest wyposażona w najnowsze opcje rekomendowane jest aktualizowanie oprogramowania regularnie. Może to być wykonane na {machine_name} (kiedy jest podłączona do sieci) lub przez USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Nowe oprogramowanie %s jest dostępne" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Pobierz" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Nie można uzyskać dostępu do informacji o aktualizacji" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" msgstr "Wystąpił błąd podczas otwierania pliku SolidWorks! Proszę sprawdź, czy możesz otworzyć plik SolidWorks bez żadnych problemów!" @@ -436,17 +707,12 @@ msgstr "Plik złożenia SolidWorks" msgid "Configure" msgstr "Konfiguruj" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" msgstr "Błąd podczas rozpoczynania %s!" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "Pamiętaj, że musisz ponownie otworzyć plik SolidWorks ręcznie! Przeładowanie modelu nie będzie działać!" - #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" msgstr "Modyfikuj G-Code" @@ -456,7 +722,12 @@ msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." msgstr "Cura zbiera anonimowe statystyki cięcia. Możesz wyłączyć to w ustawieniach." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Zbieranie Danych" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Anuluj" @@ -474,14 +745,19 @@ msgstr "Pliki G-code" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Warstwy" +msgid "Layer view" +msgstr "Widok warstwy" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura nie wyświetla dokładnie warstw kiedy drukowanie przewodowe jest włączone" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Widok warstwy" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -507,24 +783,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "Obraz GIF" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Wybrany materiał jest niezgodny z wybranym urządzeniem lub konfiguracją." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Nie można pociąć z obecnym materiałem, ponieważ nie jest on kompatybilny z wybraną maszyną lub konfiguracją." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Nie można pociąć" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Nie można pociąć z bieżącymi ustawieniami. Następujące ustawienia mają błędy: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Nie można pociąć, ponieważ wieża czyszcząca lub jej pozycja(e) są niewłaściwe." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Nic do pocięcia, ponieważ żaden z modeli nie pasuje do obszaru roboczego. Proszę o przeskalowanie lub obrócenie modelu, żeby pasował." @@ -535,6 +818,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Przetwarzanie warstw" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informacja" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -546,13 +834,13 @@ msgid "Configure Per Model Settings" msgstr "Konfiguruj ustawienia każdego modelu z osobna" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Zalecane" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Niestandardowe" @@ -563,25 +851,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "Plik 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Dysza" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" msgstr "Przeglądaj wtyczki" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Nie udało się uzyskać ID wtyczki z {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Ostrzeżenie" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" msgstr "Przeglądarka wtyczek" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Bryła" +msgid "Solid view" +msgstr "Widok modelu" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -593,7 +893,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Analizowanie G-code" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Szczegóły G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Przed wysłaniem pliku upewnij się, że G-code jest odpowiedni do konfiguracji drukarki. Przedstawienie G-kodu może nie być dokładne." @@ -615,7 +921,7 @@ msgid "Cura Project 3MF file" msgstr "Plik Cura Project 3MF" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Wybierz aktualizacje" @@ -635,18 +941,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Wypoziomuj stół" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Zewnętrzna ściana" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Ściany wewnętrzne" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Skin" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Wypełnienie" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Wypełnienie podpór" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Łączenie podpory" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Podpory " + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Obwódka" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Ruch jałowy" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Retrakcja" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Inny" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Plik pocięty wcześniej {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Nie załadowano materiału" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Nieznany materiał" @@ -656,35 +1017,56 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Znajdowanie nowej lokalizacji obiektów" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Szukanie Lokalizacji" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Nie można znaleźć lokalizacji w obrębie obszaru roboczego dla wszystkich obiektów" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Nie można Znaleźć Lokalizacji" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Plik już istnieje" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "Plik {0} już istnieje. Czy na pewno chcesz go nadpisać?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Niestandardowy" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Niestandardowy materiał" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Wybrany materiał jest niezgodny z wybranym urządzeniem lub konfiguracją." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Niekompatybilny Materiał" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." @@ -702,70 +1084,86 @@ msgstr "Cofnij zmianę średnicy materiału." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" -msgstr "Nie można wyeksportować profilu do {0}: {1}" +msgstr "Nie udało się wyeksportować profilu do {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Nie można wyeksportować profilu do {0}: Wtyczka Cura zgłosiła błąd." +msgstr "Nie można eksportować profilu do {0}: Wtyczka pisarza zgłosiła błąd." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Wyeksportowano profil do {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Nie można zaimportować profilu z {0}: {1}" +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Szczegóły Eskportu" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to import profile from {0}: {1}" +msgstr "Nie udało się zaimportować profilu z {0}: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Profil zaimportowany {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Profil {0} ma nieznany typ pliku lub jest uszkodzony." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Niestandardowy profil" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Profilowi brakuje typu jakości." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Nie można znaleźć typu jakości {0} dla bieżącej konfiguracji." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "Wysokość obszaru roboczego została zmniejszona ze względu na wartość ustawienia Print Sequence (Sekwencja wydruku), aby zapobiec kolizji z wydrukowanymi modelami." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Obszar Roboczy" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Zwielokrotnienie i umieszczanie przedmiotów" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Rozmieszczenie Obiektów" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -787,34 +1185,34 @@ msgctxt "@action:button" msgid "Open Web Page" msgstr "Otwórz stronę sieci Web" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Ładowanie drukarek..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Ustawianie sceny ..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Ładowanie interfejsu ..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Jednocześnie można załadować tylko jeden plik G-code. Pominięto importowanie {0}" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -844,12 +1242,12 @@ msgstr "X (Szerokość)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -939,113 +1337,72 @@ msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." msgstr "Różnica w wysokości pomiędzy końcówką dyszy i systemem suwnym (osie X i Y). Używane do unikania kolizji z poprzednimi wydrukami podczas drukowania \"Jeden na Raz\"." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Liczba ekstruderów" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." msgstr "Nominalna średnica filamentu wspierana przez drukarkę. Dokładna średnica będzie nadpisana przez materiał i/lub profil." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" msgstr "Średnica materiału" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Rozmiar dyszy" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Początk. Gcode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." msgstr "Komendy Gcode wykonywane na samym początku." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Końcowy Gcode" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." msgstr "Komendy Gcode wykonywane na samym początku." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Ustawienia dyszy" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Korekcja dyszy X" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Korekcja dyszy Y" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Początkowy Gcode ekstrudera" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Końcowy Gcode ekstrudera" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Ustawienia Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Zapisz" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Drukuj do: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Temperatura dyszy: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Temperatura stołu: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Drukuj" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1054,9 +1411,10 @@ msgstr "Dziennik" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1110,11 +1468,13 @@ msgid "Unknown error code: %1" msgstr "Nieznany kod błędu: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Połącz się z drukarką sieciową" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" @@ -1126,17 +1486,20 @@ msgstr "" "Wybierz drukarkę z poniższej listy:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Dodaj" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Edycja" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1145,87 +1508,220 @@ msgid "Remove" msgstr "Usunąć" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Odśwież" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" msgstr "Jeżeli twojej drukarki nie ma na liście, przeczytaj poradnik o problemach z drukowaniem przez sieć" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Rodzaj" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Nieznany" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Wersja oprogramowania" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Adres" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "Drukarka pod tym adresem jeszcze nie odpowiedziała." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Połącz" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Adres drukarki" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Wpisz adres IP lub nazwę hosta drukarki w sieci." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Podłącz do drukarki" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Załaduj konfigurację drukarki do Cura" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Uaktywnij konfigurację" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Ta drukarka nie została ustawiona do hostowania grupy podłączonych drukarek Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Ta drukarka nie została ustawiona do hostowania grupy %1 podłączonych drukarek Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Drukuj przez sieć" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Drukuj" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 nie została ustawiona do hostowania grupy podłączonych drukarek Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Drukowanie" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Zajęta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Zakończono" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Przygotowywanie" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Dostępna" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Zakończono:" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Oczyść platformę roboczą" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Przygotowywanie do druku" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Nie akceptuje zadań drukowania" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Otwiera stronę zadań drukowania za pomocą domyślnej przeglądarki." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Zobacz zadania drukowania" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "GRUPA DRUKAREK" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Zadania drukowania" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Drukowanie" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "W kolejce" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Oczekuje na zmianę konfiguracji" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Drukarki" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Zobacz drukarki" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" @@ -1314,67 +1810,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Zmień aktywne skrypty post-processingu" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Tryb widoku: warstwy" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Schemat kolorów" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Kolor materiału" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Rodzaj linii" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Tryb zgodności" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Pokaż ruch jałowy" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Pokaż pomocnik" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Pokaż powłokę" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Pokaż wypełnienie" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Pokaż tylko najwyższe warstwy" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Pokaż 5 Szczegółowych Warstw" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Góra/ Dół" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Wewnętrzna ściana" @@ -1449,23 +1940,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Wygładzanie" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Wybierz ustawienia" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Wybierz Ustawienia, aby dostosować ten model" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtr..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Pokaż wszystko" @@ -1602,25 +2093,46 @@ msgctxt "@title:window" msgid "Find & Update plugins" msgstr "Znajdź i Zaktualizuj Wtyczki" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." msgstr "Tutaj możesz znaleźć listę wtyczek innych firm." -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" msgid "Upgrade" msgstr "Ulepsz" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" msgid "Installed" msgstr "Zainstalowane" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Akceptowanie Licencji Wtyczki" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr "" +" wtyczka zawiera licencje.\n" +"Musisz zaakceptować tą licencję, aby zainstalować wtyczkę.\n" +"Akceptujesz poniższe postanowienia?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 msgctxt "@action:button" -msgid "Download" -msgstr "Pobierz" +msgid "Accept" +msgstr "Akceptuj" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Odrzuć" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1796,71 +2308,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Wszystko w porządku! Skończono sprawdzenie." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Nie podłączono do drukarki" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Drukarka nie akceptuje poleceń" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "W naprawie. Sprawdź drukarkę" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Utracone połączenie z drukarką" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Drukowanie..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Wstrzymano" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Przygotowywanie ..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Usuń wydruk" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Wznów" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Wstrzymaj" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Przerwij wydruk" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Przerwij wydruk" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Czy na pewno chcesz przerwać drukowanie?" @@ -1895,19 +2407,19 @@ msgid "Customized" msgstr "Dostosowane" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Zawsze pytaj o to" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Odrzuć i nigdy nie pytaj" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Zachowaj i nigdy nie pytaj" @@ -2048,7 +2560,7 @@ msgid "Unit" msgstr "Jednostka" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Ogólny" @@ -2063,223 +2575,223 @@ msgctxt "@label" msgid "Language:" msgstr "Język:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Waluta:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Motyw:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Musisz zrestartować aplikację, aby te zmiany zaczęły obowiązywać." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Tnij automatycznie podczas zmiany ustawień." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Automatyczne Cięcie" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Zachowanie okna edycji" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Zaznacz nieobsługiwane obszary modelu na czerwono. Bez wsparcia te obszary nie będą drukowane prawidłowo." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Wyświetl zwis" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Przenosi kamerę, aby model był w centrum widoku, gdy wybrano model" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Wyśrodkuj kamerę kiedy przedmiot jest zaznaczony" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Czy domyślne zachowanie zoomu powinno zostać odwrócone?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Odwróć kierunek zoomu kamery." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" msgstr "Czy przybliżanie powinno poruszać się w kierunku myszy?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" msgstr "Przybliżaj w kierunku myszy" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Czy modele na platformie powinny być przenoszone w taki sposób, aby nie przecinały się?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Upewnij się, że modele są oddzielone" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Czy modele na platformie powinny być przesunięte w dół, aby dotknęły stołu roboczego?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Automatycznie upuść modele na stół roboczy" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Pokaż komunikat ostrzegawczy w tekście G-code." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Komunikat ostrzegawczy w tekście G-code" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Czy warstwa powinna być wymuszona w trybie zgodności?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Wymuszenie widoku warstw w trybie zgodności (wymaga ponownego uruchomienia)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Otwieranie i zapisywanie plików" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Czy modele powinny być skalowane do wielkości obszaru roboczego, jeśli są zbyt duże?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Skaluj duże modele" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Model może wydawać się bardzo mały, jeśli jego jednostka jest na przykład w metrach, a nie w milimetrach. Czy takie modele powinny być skalowane?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Skaluj bardzo małe modele" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Czy przedrostek oparty na nazwie drukarki powinien być automatycznie dodawany do nazwy zadania?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Dodaj przedrostek maszyny do nazwy zadania" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Czy podsumowanie powinno być wyświetlane podczas zapisu projektu?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Pokaż okno podsumowania podczas zapisywaniu projektu" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Domyślne zachowanie podczas otwierania pliku projektu" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Domyślne zachowanie podczas otwierania pliku projektu: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Zawsze pytaj" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Zawsze otwieraj jako projekt" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Zawsze importuj modele" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Kiedy dokonasz zmian w profilu i przełączysz się na inny, zostanie wyświetlone okno z pytaniem, czy chcesz zachować twoje zmiany, czy nie. Możesz też wybrać domyślne zachowanie, żeby to okno już nigdy nie było pokazywane." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Nadpisz profil" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Prywatność" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Czy Cura ma sprawdzać dostępność aktualizacji podczas uruchamiania programu?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Sprawdź, dostępność aktualizacji podczas uruchamiania" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Czy anonimowe dane na temat wydruku mają być wysyłane do Ultimaker? Uwaga. Żadne modele, adresy IP, ani żadne inne dane osobiste nie będą wysyłane i/lub przechowywane." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Wyślij (anonimowe) informacje o drukowaniu" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Drukarki" @@ -2329,7 +2841,7 @@ msgid "Waiting for a printjob" msgstr "Oczekiwanie na zadanie drukowania" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profile" @@ -2427,7 +2939,7 @@ msgid "Export Profile" msgstr "Eksportuj Profil" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materiał" @@ -2459,14 +2971,14 @@ msgid "Import Material" msgstr "Importuj Materiał" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" msgstr "Nie można zaimportować materiału %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "Pomyślnie zaimportowano materiał %1" +msgstr "Udało się zaimportować materiał %1" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 @@ -2475,17 +2987,17 @@ msgid "Export Material" msgstr "Eksportuj Materiał" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" msgstr "Nie udało się wyeksportować materiału do %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Udało się wyeksportować materiał do %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Dodaj drukarkę" @@ -2500,71 +3012,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Dodaj drukarkę" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Zewnętrzna ściana" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Ściany wewnętrzne" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Skin" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Wypełnienie" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Wypełnienie podpór" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Łączenie podpory" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Podpory " - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Ruch jałowy" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Retrakcja" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Inny" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2674,32 +3121,48 @@ msgctxt "@label" msgid "SVG icons" msgstr "Ikony SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profil:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "" +"Niektóre wartości ustawień różnią się od wartości zapisanych w profilu.\n" +"\n" +"Kliknij, aby otworzyć menedżer profili." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Szukanie..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Skopiuj wartość do wszystkich ekstruderów" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Ukryj tę opcję" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Nie pokazuj tej opcji" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Pozostaw tę opcję widoczną" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Skonfiguruj widoczność ustawień..." @@ -2757,12 +3220,12 @@ msgstr "" "\n" "Kliknij, aby przywrócić wartość obliczoną." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Ustawienia druku" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" @@ -2771,12 +3234,37 @@ msgstr "" "Konfiguracja wydruku jest wyłączona\n" "Pliki G-code nie mogą zostać zmodyfikowane" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00h 00min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Informacje o czasie" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Czas druku" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Zalecana konfiguracja wydruku

Drukowanie z zalecanymi ustawieniami dla wybranej drukarki, materiału i jakości." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Niestandardowa konfiguracja wydruku

Drukowanie z precyzyjną kontrolą nad każdym elementem procesu cięcia." @@ -2826,81 +3314,87 @@ msgid "No printer connected" msgstr "Nie podłączono drukarki" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Głowica" +msgid "Extruder" +msgstr "Ekstruder" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Docelowa temperatura głowicy. Głowica będzie się rozgrzewać lub chłodzić do tej temperatury. Jeżeli jest równe 0, grzanie głowicy będzie wyłączone." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Bieżąca temperatura głowicy drukującej." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Kolor materiału w tym ekstruderze." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Materiał w głowicy drukującej." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Dysza włożona do tego ekstrudera." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Stół roboczy" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Temperatura docelowa podgrzewanego stołu. Stół rozgrzeje się lub schłodzi w kierunku tej temperatury. Jeśli ustawione jest 0, grzanie stołu jest wyłączone." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Bieżąca temperatura podgrzewanego stołu." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Temperatura do wstępnego podgrzewania stołu." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Anuluj" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Podgrzewanie wstępne" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Przed drukowaniem podgrzej stół. W dalszym ciągu można dostosowywać druk podczas nagrzewania, a nie będziesz musiał czekać na rozgrzanie stołu, gdy będziesz gotowy do drukowania." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Aktywny wydruk" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Nazwa pracy" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Czas druku" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Szacowany czas pozostały" @@ -3091,53 +3585,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Skonfiguruj widoczność ustawień ..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" msgstr "Proszę załaduj model 3D" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Gotowy do cięcia" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Cięcie..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Gotowy do %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Nie można pociąć" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Cięcie niedostępne" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Przygotuj" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Anuluj" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Wybierz aktywne urządzenie wyjściowe" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Otwórz plik(i)" @@ -3229,42 +3723,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Pomoc" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Otwórz plik" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Tryb podglądu" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Ustawienia" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Nowy projekt" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Czy na pewno chcesz rozpocząć nowy projekt? Spowoduje to wyczyszczenie stołu i niezapisanych ustawień." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" msgstr "Zainstaluj Wtyczkę" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Otwórz plik(i)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Znaleziono jeden lub więcej plików G-code w wybranych plikach. Możesz otwierać tylko jeden plik G-code jednocześnie. Jeśli chcesz otworzyć plik G-code, proszę wybierz tylko jeden." @@ -3289,102 +3778,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Nie pokazuj podsumowania projektu podczas ponownego zapisywania" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Zapisz" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" msgstr "Przygotuj" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "Drukuj" +msgid "Monitor" +msgstr "Monitor" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Wysokość warstwy" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Prędkość Druku" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Wolniej" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Szybciej" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Wypełnienie" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Puste wypełnienie pozostawi twój model pusty z niską wytrzymałością." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Lekkie (20%) wypełnienie sprawi, że model będzie średniej wytrzymałości." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Gęste wypełnienie (50%) da modelowi wyższą niż średnia wytrzymałość." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Pełne (100%) wypełnienie sprawi, że model będzie całkowicie wypełniony." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Stopniowy" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Stopniowe wypełnienie stopniowo zwiększa ilość wypełnień w górę." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Włącz stopniowane" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Generuj podpory" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Generuje podpory wspierające części modelu, które mają zwis. Bez tych podpór takie części mogłyby spaść podczas drukowania." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Ekstruder od podpór" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Wybierz, który ekstruder ma służyć do drukowania podpór. Powoduje to tworzenie podpór poniżej modelu, aby zapobiec spadaniu lub drukowaniu modelu w powietrzu." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Popraw przycz. modelu" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Włącz drukowanie obrysu lub tratwy. Spowoduje to dodanie płaskiej powierzchni wokół lub pod Twoim obiektem, która jest łatwa do usunięcia po wydruku." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Potrzebujesz pomocy w ulepszaniu wydruków?
Przeczytaj instrukcje dotyczące rozwiązywania problemów" @@ -3421,33 +3895,21 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Dziennik silnika" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Materiał" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Sprawdź kompatybilność materiału" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Kliknij, aby sprawdzić zgodność materiału na Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profil:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Niektóre wartości ustawień różnią się od wartości zapisanych w profilu.\n" -"\n" -"Kliknij, aby otworzyć menedżer profili." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" @@ -3498,6 +3960,16 @@ msgctxt "name" msgid "God Mode" msgstr "Tryb Boga" +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Akceptuje G-Code i wysyła go przez WiFi do Doodle3D WiFi-Box." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" + #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." @@ -3528,16 +4000,6 @@ msgctxt "name" msgid "USB printing" msgstr "Drukowanie USB" -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "Zapewnia wsparcie w tworzeniu plików X3G" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "X3G Writer" - #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." @@ -3558,6 +4020,21 @@ msgctxt "name" msgid "UM3 Network Connection" msgstr "Połączenie Sieciowe UM3" +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Połączenie Sieciowe UM3 (Grupa)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Sprawdź aktualizacje oprogramowania" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Sprawdzacz Aktualizacji Oprogramowania" + #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" @@ -3648,6 +4125,16 @@ msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" msgstr "Ulepszenie Wersji z 2.5 do 2.6" +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Ulepsza konfigurację z Cura 2.7 do Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Ulepszenie Wersji 2.7 do 3.0" + #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." @@ -3788,6 +4275,189 @@ msgctxt "name" msgid "Cura Profile Reader" msgstr "Czytnik Profili Cura" +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Prześwietlenie" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Akceptuje G-code i wysyła je przez WiFi do Doodle3D WiFi-Box." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Drukowanie Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Drukuj z Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Drukuj z " + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Włącz skanowanie urządzeń ..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "Plik X3G" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Zapisywanie na dysk wymienny {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Nie udało się zapisać do {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Pamiętaj, że musisz ponownie otworzyć plik SolidWorks ręcznie! Przeładowanie modelu nie będzie działać!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Warstwy" + +#~ msgid "Browse plugins" +#~ msgstr "Przeglądaj wtyczki" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Bryła" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Plik {0} już istnieje. Czy na pewno chcesz go nadpisać?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Nie można wyeksportować profilu do {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Nie można wyeksportować profilu do {0}: Wtyczka Cura zgłosiła błąd." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Wyeksportowano profil do {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Nie można zaimportować profilu z {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Ustawienia Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Drukuj do: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Temperatura dyszy: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Temperatura stołu: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Tryb widoku: warstwy" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Nie można zaimportować materiału %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Pomyślnie zaimportowano materiał %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Nie udało się wyeksportować materiału do %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Udało się wyeksportować materiał do %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Głowica" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Tryb podglądu" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Drukuj" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Puste wypełnienie pozostawi twój model pusty z niską wytrzymałością." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Lekkie (20%) wypełnienie sprawi, że model będzie średniej wytrzymałości." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Gęste wypełnienie (50%) da modelowi wyższą niż średnia wytrzymałość." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Pełne (100%) wypełnienie sprawi, że model będzie całkowicie wypełniony." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Stopniowy" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Zapewnia wsparcie w tworzeniu plików X3G" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G Writer" + #~ msgctxt "@label" #~ msgid "Machine Settings action" #~ msgstr "Czynność ustawienia drukarki" @@ -4092,4 +4762,4 @@ msgstr "Czytnik Profili Cura" #~ msgid "Print Selected Model with %1" #~ msgid_plural "Print Selected Models With %1" #~ msgstr[0] "Wydrukuj wybrany model z %1" -#~ msgstr[1] "Wydrukuj wybrane modele z %1" +#~ msgstr[1] "Wydrukuj wybrane modele z %1" \ No newline at end of file diff --git a/resources/i18n/pl/fdmextruder.def.json.po b/resources/i18n/pl_PL/fdmextruder.def.json.po similarity index 98% rename from resources/i18n/pl/fdmextruder.def.json.po rename to resources/i18n/pl_PL/fdmextruder.def.json.po index a2248200b3..7a75a558d6 100644 --- a/resources/i18n/pl/fdmextruder.def.json.po +++ b/resources/i18n/pl_PL/fdmextruder.def.json.po @@ -5,18 +5,16 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" "PO-Revision-Date: 2017-08-04 12:25+0200\n" "Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" "Language-Team: reprapy.pl\n" -"Language: Polish\n" +"Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pl\n" -"Country-Code: PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.0.3\n" diff --git a/resources/i18n/pl/fdmprinter.def.json.po b/resources/i18n/pl_PL/fdmprinter.def.json.po similarity index 91% rename from resources/i18n/pl/fdmprinter.def.json.po rename to resources/i18n/pl_PL/fdmprinter.def.json.po index db2e304259..f7a71f1a28 100644 --- a/resources/i18n/pl/fdmprinter.def.json.po +++ b/resources/i18n/pl_PL/fdmprinter.def.json.po @@ -5,19 +5,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-08-05 22:00+0200\n" +"PO-Revision-Date: 2017-09-29 16:14+0200\n" "Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" "Language-Team: reprapy.pl\n" -"Language: Polish\n" +"Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pl\n" -"Country-Code: PL\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.4\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -762,16 +760,6 @@ msgctxt "shell description" msgid "Shell" msgstr "Powłoka" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "Ekstruder Ściany" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "Ekstruder używany do drukowania ścian. Używane w multi-esktruzji." - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" @@ -1132,6 +1120,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Losowe" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Najostrzejszy róg" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1152,6 +1145,36 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Współrzędna Y położenia, w pobliżu miejsca rozpoczęcia drukowania każdej warstwy." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Wybór Rogu Szwu" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Kontroluje, czy rogi na zewn. linii modelu wpływają na pozycję szwu. Brak oznacza, że rogi nie mają wpływu na pozycję szwu. Ukryj Szew powoduje, że szew będzie się bardziej pojawiał na wewn. rogach. Pokaż Szew powoduje, że szew będzie się bardziej pojawiał na zewn. rogach. Ukryj lub Pokaż Szew powoduje, że szew będzie się bardziej pojawiał na wewn. lub zewn. rogach." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Brak" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Ukryj Szew" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Pokaż Szew" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Ukryj lub Pokaż Szew" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" @@ -1172,6 +1195,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Jeśli model ma małe, pionowe szczeliny, to można wykorzystać dodatkowe 5% mocy obliczeniowej do wygenerowania górnej i dolnej skóry w wąskich przestrzeniach. W takim wypadku, wyłącz tę opcję." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Liczba Dod. Ścian na Skórze" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Zastępuje najbardziej zewnętrzną część wzoru górnego/dolnego za pomocą kilku koncentrycznych linii. Korzystanie z jednej lub dwóch linii poprawia dachy, które zaczynają się na wypełnieniu." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1219,8 +1252,8 @@ msgstr "Wzór Wypełn." #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Wzór materiału wypełniającego. Linia i zygzakowy wypełnienie zmienia kierunek na przemiennych warstwach zmniejszając koszt materiału. Wzory siatki, trójkątne, sześcienne, czworościenne i koncentryczne są w pełni drukowane na każdej warstwie. Wypełnienie sześcienne i czworościenne zmienia się co każdą warstwę, aby zapewnić równe rozłożenie siły w każdym kierunku." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Wzór materiału wypełniającego wydruk. Linie i zygzaki zmieniają kierunek na przemiennych warstwach, redukując koszty materiału. Kratka, trójkąty, sześcienne, ośmiościenne, ćwierć sześcienny i koncentryczny wzór są drukowane w pełni na każdej warstwie. Sześcienne, ćwierć sześcienne i czworościenne wypełnienie zmienia się co każdą warstwę, aby zapewnić równy rozkład siły w każdym kierunku." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1249,8 +1282,13 @@ msgstr "Podział sześcienny" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Czworościenny" +msgid "Octet" +msgstr "Czworościan" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Ćwierć Sześcienny" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1267,6 +1305,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zygzak" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Krzyż" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Krzyż 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Połącz Linie Wypełnienia" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Łączy końce gdzie wypełnienie spotyka się z wewn. ścianą za pomocą linii, które podążają za kształtem wewn. ściany. Włączenie tej opcji może spowodować lepsze łączenie się wypełnienia ze ścianą i redukuje efekty związane z jakością na pionowych ścianach. Wyłączenie tej opcji redukuje ilość użytego materiału." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1388,44 +1446,64 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Nie generuj obszarów wypełnienia mniejszych niż to (zamiast tego używaj skóry)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Rozszerz Powłokę Do Wypełn." +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Szerokość Usuwania Skóry" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Rozszerz obszary powłoki na górze i/lub dole powierzchni płaskich. Domyślnie, powłoka kończy się na linii ściany otaczające wypełnienie, chociaż może to prowadzić do powstawania dziur kiedy gęstość wypełnienia jest niska. Ustawienie to rozciąga powłokę poza linię ściany, dzięki czemu wypełnienie na kolejnej warstwie osiada na powłoce." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Największa szerokość pow. skóry, które mają zostać usunięte. Każda pow. skóry mniejsza niż ta wartość zniknie. Może to pomóc w ograniczeniu ilości czasu i materiału zużywanego na drukowanie górnych/dolnych skór na pochyłych powierzchniach modelu." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Rozszerz Górną Powłokę Do Wypełn." +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Szer. Usuwania Górnej Skóry" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Rozszerz górne obszary ścian (obszary, które mają ponad sobą powietrze) tak, aby wspomagały wypełnienie powyżej." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Największa szerokość górnej pow. skóry, które mają zostać usunięte. Każda pow. skóry mniejsza niż ta wartość zniknie. Może to pomóc w ograniczeniu ilości czasu i materiału zużywanego na drukowanie górnych skór na pochyłych powierzchniach modelu." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Rozszerz Dolną Powłokę Do Wypełn." +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Szer. Usuwania Dolnej Skóry" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Rozszerz dolną powłokę (obszary, pod którym jest powietrze) tak, aby zostały zakotwiczone o warstwy wypełniające powyżej i poniżej." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Największa szerokość dolnych pow. skóry, które mają zostać usunięte. Każda pow. skóry mniejsza niż ta wartość zniknie. Może to pomóc w ograniczeniu ilości czasu i materiału zużywanego na drukowanie dolnych skór na pochyłych powierzchniach modelu." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" msgid "Skin Expand Distance" -msgstr "Odległość Rozsz. Powłoki" +msgstr "Odległość Rozsz. Skóry" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Odległość na jaką powłoki zostają rozszerzone do wypełnienia. Domyślna odległość wystarcza, aby pokonać szczelinę między liniami wypełnienia i nie dopuścić do powstania dziur, gdzie spotyka się z powłoką, gdy gęstość wypełnienia jest niska. Mniejsza odległość będzie często wystarczająca." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Odległość na jaką skóry są rozszerzane w kierunku wypełnienia. Wyższe wartości powodują lepsze łączenie się skóry i wypełnienia i powodują, że ściany sąsiednich warstw lepiej łączą się ze skórą. Niższe wartości oszczędzają materiał." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Odległość Rozsz. Górnej Skóry" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Odległość na jaką górne skóry są rozszerzane w kierunku wypełnienia. Wyższe wartości powodują lepsze łączenie się skóry i wypełnienia i powodują, że ściany sąsiednich warstw lepiej łączą się ze skórą. Niższe wartości oszczędzają materiał." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Odległość Rozsz. Dolnej Skóry" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Odległość na jaką dolne skóry są rozszerzane w kierunku wypełnienia. Wyższe wartości powodują lepsze łączenie się skóry i wypełnienia i powodują, że ściany sąsiednich warstw lepiej łączą się ze skórą. Niższe wartości oszczędzają materiał." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1807,16 +1885,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Szybkość, z jaką drukowane są górne/dolne warstwy." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "Prędkość Prasowania" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "Prędkość, z jaką drukarka przejeżdża nad górnymi powierzchniami." - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2047,16 +2115,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Przyspieszenie, z jakim drukowane są górne/dolne warstwy." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "Przyspieszenie Prasowania" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "Przyspieszenie, z jakim przeprowadzane jest prasowanie." - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2247,16 +2305,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Maksymalna zmiana prędkości chwilowej z jaką drukowane są górne/dolne warstwy." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "Zryw Prasowania" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "Maksymalna nagła zmiana prędkości podczas przeprowadzania prasowania." - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2772,6 +2820,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zygzak" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Krzyż" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2784,23 +2837,33 @@ msgstr "Połącz Zygzaki. To zwiększa wytrzymałość zygzakowatej podpory." #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "Pomijaj Niektóre Połączenia Zygzak" +msgid "Break Up Support In Chunks" +msgstr "Podziel Podpory na Kawałki" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "Pomijaj niektóre połączenia Zygzak, aby struktura podpór łatwiej się odrywała." +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Pomijaj niektóre połączenia linii podpory, aby struktura podpory była łatwiejsza do odłamania. To ustawienie dotyczy wypełn. podpory Zygzak." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Wielkość Kawałka Podpory" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Pomiń połączenie pomiędzy liniami podpory co N milimetrów, aby struktura podpory była łatwiejsza do odłamania." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "Ilość Pominięć Połącz. Zygzak" +msgid "Support Chunk Line Count" +msgstr "Liczba Linii Kawałka Podpory" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "Pomijaj jedno na każde N linii połączeń, aby struktury podpór łatwiej się odrywały." +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Pomijaj jedną z każdych N linii, aby struktura podpory była łatwiejsza do odłamania." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -3386,6 +3449,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Drukuj obrys tylko na zewnątrz modelu. Zmniejsza to liczbę obrysu, który trzeba usunąć po wydruku, podczas gdy nie zmniejsza znacząco przyczepności do stołu." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Przesunięcie w Osi Z Warstwy Początk." + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "Ekstruder jest przesuwany z normalnej wysokości pierwszej warstwy o tą wartość. Może być dodatnia (uniesienie) lub ujemna (obniżenie). Niektóre typy filamentu przyklejają się lepiej do stołu jeżeli ekstruder jest lekko uniesiony." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Warstwy Zbieżne Przesunięcia Z" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Kiedy niezerowe, przesunięcie w osi Z jest redukowane do zera w trakcie drukowania takiej ilości warstw. Wartość 0 oznacza, że przesunięcie pozostaje stałe dla wszystkich warstw wydruku." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3396,6 +3479,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Jeśli tratwa jest włączona, jest to dodatkowy obszar tratwy wokół modelu, który ma również tratwę. Zwiększenie marginesu wzmocni tratwę przy wykorzystaniu z większej ilości materiału i pozostawi mniej miejsca na wydruk." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Wygładzanie Tratwy" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "To ustawienie kontroluje jak bardzo wewn. narożniki zewn. linii tratwy są zaokrąglone. Wewn. narożniki są zaokrąglone do pół-okręgów o promieniu równym wartości podanej w tym miejscu. To ustawienie usuwa też otwory w zewn. linii tratwy, które są mniejsze niż taki okrąg." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -4071,6 +4164,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Wygładź spiralny kontur, aby zmniejszyć widoczność szwu Z (szew Z powinien być ledwo widoczny na wydruku, ale nadal będzie widoczny w widoku warstwy). Należy pamiętać, że wygładzanie będzie miało tendencję do rozmycia drobnych szczegółów powierzchni." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Ekstruzja Względna" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Używaj ekstruzji względnej zamiast bezwzględnej. Używanie względnych kroków osi E powoduje łatwiejszy postprocessing Gcodu. Jednakże nie jest to wspierane przez wszystkie drukarki i może powodować lekkie zakłamania w ilości podawanego materiału w porównaniu do kroków bezwzględnych. Niezależnie od tego ustawienia, tryb ekstruzji będzie zawsze ustawiany jako bezwzględny przez wyjściem jakiegokolwiek skryptu Gcode" + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4081,6 +4184,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "eksperymentalne!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Optymalizuj Kolejność Drukowania Ścian" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Optymalizuj kolejność, według której drukowane są ściany, aby zredukować ilość retrakcji i długości ruchu jałowego. Większość części powinno na tym zyskać, ale niektóre mogą drukować się dłużej, dlatego prosimy o porównaniu czasu drukowania z i bez włączonej opcji." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4191,16 +4304,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Prędkość poruszania się podczas Wypływania, w stosunku do prędkości ścieżki ekstruzji. Zaleca się wartość nieco poniżej 100%, ponieważ podczas Wypływania ciśnienie w rurce bowden spada." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Liczba Dod. Ścian na Skórze" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Zastępuje najbardziej zewnętrzną część wzoru górnego/dolnego za pomocą kilku koncentrycznych linii. Korzystanie z jednej lub dwóch linii poprawia dachy, które zaczynają się na wypełnieniu." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4211,6 +4314,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Zmień kierunek, w jakim drukowane są górne/dolne warstwy. Zazwyczaj są one drukowane na ukos. Ustawienie to dodaje kierunek \"tylko X\" i \"tylko Y\"." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Rozmiar Kieszeni Krzyża 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Rozmiar kieszeni na czterostronnych skrzyżowaniach we wzorze krzyż 3D na wysokościach gdzie wzór tego siebie samego." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Zamieniaj Kieszenie Krzyża 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Twórz kieszenie tylko w połowie czterostronnych skrzyżowań we wzorze krzyż 3D i zamieniaj pozycję kieszonek pomiędzy wysokościami gdzie wzór dotyka samego siebie." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4630,6 +4753,16 @@ msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." msgstr "Przejedź nad górną powierzchnią dodatkowy raz, ale bez ekstrudowania materiału. Topi to plastyk na górze, co powoduje gładszą powierzchnię." +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Prasuj Tylko Najwyższą Warstwę" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Przeprowadzaj prasowanie tylko na najwyższej warstwie siatki. Oszczędza to czas jeżeli niższe warstwy nie muszą mieć gładkie wykończenia powierzchni." + #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" @@ -4680,6 +4813,36 @@ msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." msgstr "Odległość utrzymywana od krawędzi modelu. Prasowanie do końca krawędzi siatki może powodować zadarte krawędzie na wydruku." +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Prędkość Prasowania" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Prędkość, z jaką drukarka przejeżdża nad górnymi powierzchniami." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Przyspieszenie Prasowania" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "Przyspieszenie, z jakim przeprowadzane jest prasowanie." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Zryw Prasowania" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Maksymalna nagła zmiana prędkości podczas przeprowadzania prasowania." + #: fdmprinter.def.json msgctxt "command_line_settings label" msgid "Command Line Settings" @@ -4740,6 +4903,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Forma przesunięcia, która ma być zastosowana do modelu podczas ładowania z pliku." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Ekstruder Ściany" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Ekstruder używany do drukowania ścian. Używane w multi-esktruzji." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Wzór materiału wypełniającego. Linia i zygzakowy wypełnienie zmienia kierunek na przemiennych warstwach zmniejszając koszt materiału. Wzory siatki, trójkątne, sześcienne, czworościenne i koncentryczne są w pełni drukowane na każdej warstwie. Wypełnienie sześcienne i czworościenne zmienia się co każdą warstwę, aby zapewnić równe rozłożenie siły w każdym kierunku." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Czworościenny" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Rozszerz Powłokę Do Wypełn." + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Rozszerz obszary powłoki na górze i/lub dole powierzchni płaskich. Domyślnie, powłoka kończy się na linii ściany otaczające wypełnienie, chociaż może to prowadzić do powstawania dziur kiedy gęstość wypełnienia jest niska. Ustawienie to rozciąga powłokę poza linię ściany, dzięki czemu wypełnienie na kolejnej warstwie osiada na powłoce." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Rozszerz Górną Powłokę Do Wypełn." + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Rozszerz górne obszary ścian (obszary, które mają ponad sobą powietrze) tak, aby wspomagały wypełnienie powyżej." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Rozszerz Dolną Powłokę Do Wypełn." + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Rozszerz dolną powłokę (obszary, pod którym jest powietrze) tak, aby zostały zakotwiczone o warstwy wypełniające powyżej i poniżej." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Odległość na jaką powłoki zostają rozszerzone do wypełnienia. Domyślna odległość wystarcza, aby pokonać szczelinę między liniami wypełnienia i nie dopuścić do powstania dziur, gdzie spotyka się z powłoką, gdy gęstość wypełnienia jest niska. Mniejsza odległość będzie często wystarczająca." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Pomijaj Niektóre Połączenia Zygzak" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Pomijaj niektóre połączenia Zygzak, aby struktura podpór łatwiej się odrywała." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Ilość Pominięć Połącz. Zygzak" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Pomijaj jedno na każde N linii połączeń, aby struktury podpór łatwiej się odrywały." + #~ msgctxt "machine_center_is_zero label" #~ msgid "Is center origin" #~ msgstr "Począt. na Środku" @@ -4798,4 +5021,4 @@ msgstr "Forma przesunięcia, która ma być zastosowana do modelu podczas ładow #~ msgctxt "wall_thickness description" #~ msgid "The thickness of the outside walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -#~ msgstr "Grubość ścian zewnętrznych w kierunku poziomym. Ta wartość podzielona przez szerokość linii ściany określa liczbę ścian." +#~ msgstr "Grubość ścian zewnętrznych w kierunku poziomym. Ta wartość podzielona przez szerokość linii ściany określa liczbę ścian." \ No newline at end of file diff --git a/resources/i18n/ptbr/cura.po b/resources/i18n/pt_BR/cura.po similarity index 72% rename from resources/i18n/ptbr/cura.po rename to resources/i18n/pt_BR/cura.po index 73347c59f4..db4aa72f0b 100644 --- a/resources/i18n/ptbr/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -2,32 +2,90 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-13 18:20-0300\n" +"PO-Revision-Date: 2017-10-05 12:20-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio and CoderSquirrel \n" -"Language: Brazillian Portuguese\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pt\n" -"Country-Code: BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "A impressão foi interrompida" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Bloqueado" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Necessária uma ação" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Não consigo começar a imprimir" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Termina em: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Esta impressora hospeda um grupo de %1 impressoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} acabou de imprimir '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impressão Concluída" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Complementos" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Navegar complementos..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Complementos instalados..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Ajustes da Máquina" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Raios X" +msgid "X-Ray view" +msgstr "Visão de Raios-X" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -39,45 +97,74 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "Arquivo G-Code" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Aceita G-Code e o envia por wifi para o aplicativo de celular Doodle3D." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Impressão Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimir com a WiFi-Box do Doodle3D" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Imprimir com a WiFi-Box do Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Conectando ao Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Cancelar" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Enviando dados ao Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Incapaz de enviar dados ao Doodle3D Connect. Há outro trabalho ainda ativo?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Armazenando dados no Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Arquivo enviado ao Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Abrir Connect.." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Imprimir com " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Habilitar dispositivos de escaneamento..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Abrir a interface web do Doodle3D Connect" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" msgid "Show Changelog" -msgstr "Mostrar registro de alterações" +msgstr "Exibir registro de alterações" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 msgctxt "@item:inmenu" @@ -114,16 +201,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Incapaz de iniciar novo trabalho porque a impressora está ocupada ou não conectada." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Detalhes de Impressão" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Esta impressora não suporta impressão USB porque usa G-Code UltiGCode." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "Impressão USB" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Incapaz de iniciar um novo trabalho porque a impressora não suporta impressão USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Aviso" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -135,10 +242,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Não foi possível encontrar o firmware requerido para a impressora em %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "Arquivo X3G" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Firmware da Impressora" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -153,47 +260,79 @@ msgstr "Salvar em Unidade Removível {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" -msgstr "Salvando em Unidade Removível {0}" +msgstr "Salvando na Unidade Removível {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Salvando" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" -msgstr "Incapaz de salvar para {0}: {1}" +msgstr "Não foi possível salvar em {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Salvo em Unidade Removível {0} como {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Não foi possível encontrar nome de arquivo ao tentar escrever em {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Ejetar" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Ejetar dispositivo removível {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Não foi possível salvar em unidade removível {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Erro" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Salvo em Unidade Removível {0} como {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Arquivo Salvo" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Ejetar" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Ejetar dispositivo removível {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "{0} ejetado. A unidade agora pode ser removida de forma segura." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Remover Hardware com Segurança" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -204,247 +343,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Unidade Removível" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Imprimir pela rede" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Imprime pela rede" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Acesso à impressora solicitado. Por favor aprove a requisição na impressora" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Status da Conexão" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Status da Conexão" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Tentar novamente" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Reenvia o pedido de acesso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Acesso à impressora confirmado" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Sem acesso para imprimir por esta impressora. Incapaz de enviar o trabalho de impressão." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Solicitar acesso" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Envia pedido de acesso à impressora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Conectado pela rede. Por favor aprove a requisição de acesso na impressora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Conectado pela rede." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Conectado pela rede. Sem acesso para controlar a impressora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Pedido de acesso foi negado na impressora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Pedido de acesso falhou devido a tempo esgotado." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "A conexão à rede foi perdida." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "A conexão com a impressora foi perdida. Verifique se sua impressora está conectada." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Incapaz de iniciar um novo trabalho de impressão, a impressora está ocupada. O estado atual da impressora é %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Status da Impressora" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Incapaz de iniciar um novo trabalho de impressão. Nenhum Printcore carregado no slot {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Incapaz de iniciar um novo trabalho de impressão. Não há material carregado no slot {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Não há material suficiente para o carretel {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "PrintCore Diferente (Cura: {0}, Impressora: {1}) selecionado para o extrusor {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Material diferente (Cura: {0}, Impressora: {1}) selecionado para o extrusor {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "O PrintCore {0} não está calibrado adequadamente. A calibração XY precisa ser executada na impressora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Tem certeza que quer imprimir com a configuração selecionada?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Há divergências entre a configuração ou calibração da impressora e do Cura. Para melhores resultados, sempre fatie com os PrintCores e materiais que estão carregados em sua impressora." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Configuração divergente" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Enviando dados à impressora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Cancelar" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Enviando Dados" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Incapaz de enviar dados à impressora. Há outro trabalho de impressão ativo?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Abortando impressão..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Impressão abortada. Por favor verifique a impressora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Pausando impressão..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Continuando impressão..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Sincronizar com a impressora" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Deseja usar a configuração atual de sua impressora no Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Os PrintCores e/ou materiais da sua impressora diferem dos que estão dentro de seu projeto atual. Para melhores resultados, sempre fatie para os PrintCores e materiais que estão na sua impressora." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Conectar pela rede" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Esta impressora hospeda um grupo de {count} impressoras Ultimaker 3 conectadas." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} acabou de imprimir '{job_name}'. Por favor colete a impressão e confirme esvaziamento da mesa." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} está reservada para imprimir '{job_name}'. Por favor altere a configuração da impressora para combinar com este trabalho para que ela comece a imprimir." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Envio de novos trabalhos (temporariamente) bloqueado, ainda enviando o trabalho de impressão anterior." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Incapaz de enviar novo trabalho de impressão: esta impressora 3D (ainda) não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Enviando {file_name} ao grupo {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "{file_name} enviado ao grupo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Exibir trabalhos de impressão" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Abrir a interface de trabalhos de impressão em seu navegador." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Incapaz de enviar trabalho de impressão ao grupo {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Para assegurar que sua {machine_name} esteja equipada com os recursos mais recentes, é recomendado atualizar o firmware regularmente. Isto pode ser feito na {machine_name} (quando conectado pela rede) ou via USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Novo firmware de %s disponível" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Baixar" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Não foi possível acessar informação de atualização." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Erros apareceram ao abrir seu arquivo SolidWorks! Por favor verifique se é possível abrir seu arquivo no próprio SolidWorks sem problema também!" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "Arquivo de parte de SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "Arquivo de montagem de SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Configure" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Erro ao iniciar %s!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -453,9 +719,14 @@ msgstr "Modificar G-Code" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "O Cura coleta estatística de fatiamento anonimizadas. Você pode desabilitar isso nas preferências." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Coletando Dados" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Fechar" @@ -473,14 +744,19 @@ msgstr "Arquivo G-Code" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Camadas" +msgid "Layer view" +msgstr "Visão de Camadas" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "O Cura não mostra as camadas corretamente quando Impressão em Arame estiver habilitada" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Visão de Camadas" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -506,24 +782,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "Imagem GIF" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "O material selecionado é incompatível com a máquina ou configuração selecionada." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Incapaz de fatiar com o material atual visto que é incompatível com a máquina ou configuração selecionada." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Incapaz de fatiar" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Incapaz de fatiar com os ajustes atuais. Os seguintes ajustes têm erros: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Incapaz de fatiar porque a torre de purga ou posição de purga são inválidas." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Nada a fatiar porque nenhum dos modelos cabe no volume de impressão. Por favor redimensione ou rotacione os modelos para caberem." @@ -534,6 +817,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Processando Camadas" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Informação" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -545,13 +833,13 @@ msgid "Configure Per Model Settings" msgstr "Configurar ajustes por Modelo" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Recomendado" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Personalizado" @@ -562,25 +850,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "Arquivo 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Bico" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Navegar complementos" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Falha ao pegar identificador do complemento de {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Aviso" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Navegador de complementos" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Sólido" +msgid "Solid view" +msgstr "Visão sólida" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -592,10 +892,16 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Interpretando G-Code" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Detalhes do G-Code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." -msgstr "Assegure que o g-code é adequado para sua impressora e configuração antes de enviar o arquivo. A representação de g-code pode não ser acurada." +msgstr "Assegure-se que o g-code é adequado para sua impressora e configuração antes de enviar o arquivo. A representação de g-code pode não ser acurada." #: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:14 #: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:14 @@ -614,7 +920,7 @@ msgid "Cura Project 3MF file" msgstr "Arquivo de Projeto 3MF do Cura" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Selecionar Atualizações" @@ -634,18 +940,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Nivelar mesa" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Parede Externa" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Paredes Internas" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Contorno" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Preenchimento" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Preenchimento de Suporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Interface de Suporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Suporte" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Skirt (Saia)" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Percurso" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Retrações" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Outros" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Arquivo pré-fatiado {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Não há material carregado" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Material desconhecido" @@ -655,120 +1016,157 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Achando novos lugares para objetos" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Buscando Localização" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Incapaz de achar um lugar dentro do volume de construção para todos os objetos" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Não Foi Encontrada Localização" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "O Arquivo Já Existe" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" msgstr "O arquivo {0} já existe. Tem certeza que quer sobrescrevê-lo?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Personalizado" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Material Personalizado" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "O material selecionado é incompatível com a máquina ou configuração selecionada." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Material Incompatível" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "O diâmetro de material selecionado faz com que o material se torne incompatível com a impressora atual." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Desfazer" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Desfaz a mudança no diâmetro do material." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" -msgstr "Falha na exportação de perfil para {0}: {1}" +msgstr "Falha ao exportar perfil para {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Falha na exportação de perfil para {0}: Complemento de gravação acusou falha." +msgstr "Falha ao exportar perfil para {0}: complemento escritor relatou erro." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Perfil exportado para {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 -#, python-brace-format -msgctxt "@info:status" -msgid "Failed to import profile from {0}: {1}" -msgstr "Falha na importação de perfil de {0}: {1}" +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Detalhes da Exportação" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to import profile from {0}: {1}" +msgstr "Falha ao importa perfil de {0}: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Perfil {0} importado com sucesso" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "O Perfil {0} tem tipo de arquivo desconhecido ou está corrompido." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Perfil personalizado" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Falta um tipo de qualidade ao Perfil." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Não foi possível encontrar tipo de qualidade {0} para a configuração atual." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "A altura do volume de impressão foi reduzida para que o valor da \"Sequência de Impressão\" impeça o eixo de colidir com os modelos impressos." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Volume de Impressão" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Multiplicando e colocando objetos" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Colocando Objeto" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" -msgstr "Relatório de Quebra" +msgstr "Relatório de Problema" #: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 msgctxt "@label" @@ -786,34 +1184,34 @@ msgctxt "@action:button" msgid "Open Web Page" msgstr "Abrir Página Web" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Carregando máquinas..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Configurando cena..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Carregando interface..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Somente um arquivo G-Code pode ser carregado por vez. Pulando importação de {0}" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -837,18 +1235,18 @@ msgstr "Ajustes da Impressora" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:107 msgctxt "@label" msgid "X (Width)" -msgstr "X (anchura)" +msgstr "X (largura)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:108 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -866,22 +1264,22 @@ msgstr "Z (Altura)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Forma da plataforma de impressão" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Origem no centro" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Mesa aquecida" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Sabor de G-Code" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -896,7 +1294,7 @@ msgstr "X mín." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distância da esquerda da cabeça de impressão ao centro do bico. Usado para prevenir colisões entre impressões anteriores e a cabeça ao imprimir \"Um de cada Vez\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -906,7 +1304,7 @@ msgstr "Y mín." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distância da frente da cabeça de impressão ao centro do bico. Usado para prevenir colisões entre impressões anteriores e a cabeça ao imprimir \"Um de cada Vez\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -916,7 +1314,7 @@ msgstr "X máx." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distância da direita da cabeça de impressão ao centro do bico. Usado para prevenir colisões entre impressões anteriores e a cabeça ao imprimir \"Um de cada Vez\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -926,7 +1324,7 @@ msgstr "Y máx." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Distância da traseira da cabeça de impressão ao centro do bico. Usado para prevenir colisões entre impressões anteriores e a cabeça ao imprimir \"Um de cada Vez\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -936,130 +1334,74 @@ msgstr "Altura do eixo" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "A diferença de altura entre a ponta do bico e o sistema de eixos X e Y. Usado para prevenir colisões entre impressões e a cabeça ao imprimir \"Um de cada Vez\"." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Número de Extrusores" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "O diâmetro nominal do filamento suportado pela impressora. O diâmetro exato será sobrepujado pelo material e/ou perfil." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Diâmetro do material" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Tamanho do bico" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "G-Code Inicial" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Comandos de G-Code a serem executados no início da impressão." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "G-Code Final" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Comandos de G-Code a serem executados no final da impressão." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Ajustes do Bico" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Deslocamento X do Bico" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Deslocamento Y do Bico" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "G-Code Inicial do Extrusor" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "G-Code Final do Extrusor" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Ajustes de Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Salvar" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Imprimir em: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Temperatura do Extrusor: %1/%2°C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-23 10:41-0300\n" -"PO-Revision-Date: 2017-06-12 18:30-0300\n" -"Last-Translator: Cláudio Sampaio \n" -"Language-Team: LANGUAGE \n" -"Language: ptbr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Temperatura da Mesa: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Imprimir" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1068,9 +1410,10 @@ msgstr "Registro de alterações" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1124,11 +1467,13 @@ msgid "Unknown error code: %1" msgstr "Código de erro desconhecido: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Conectar a Impressora de Rede" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" @@ -1140,17 +1485,20 @@ msgstr "" "Selecione sua impressora da lista abaixo:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Adicionar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Editar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1159,111 +1507,244 @@ msgid "Remove" msgstr "Remover" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Atualizar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Se sua impressora não está listada, leia o guia de resolução de problemas de impressão em rede" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Tipo" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Extended" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Desconhecido" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Versão do firmware" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Endereço" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "A impressora neste endereço ainda não respondeu." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Conectar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Endereço da Impressora" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Introduza o endereço IP ou hostname da sua impressora na rede." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Conecta a uma impressora." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Carrega a configuração da impressora no Cura" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Ativar Configuração" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Esta impressora hospeda um grupo de %1 impressoras Ultimaker 3 conectadas" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Imprimir pela rede" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Imprimir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 não está configurada para hospedar um grupo de impressora Ultimaker 3 conectadas" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Imprimindo" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Reservado" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Finalizado" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Preparando" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Disponível" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Completado em: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Esvaziar a mesa de impressão" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Preparando para imprimir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Não aceitando trabalhos de impressão" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Abre a página de trabalhos de impressão com seu navegador web default." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Visualizar trabalhos de impressão" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "GRUPO DE IMPRESSORAS" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Trabalhos de impressão" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Imprimindo" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Enfileirados" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Esperando alteração de configuração" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Impressoras" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Visualizar impressoras" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Configuração do Complemento de Solidworks do Cura" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Qualidade default do STL exportado:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Sempre perguntar" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Sempre usar qualidade Alta" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Sempre usar qualidade Baixa" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1275,33 +1756,33 @@ msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Importar Arquivo SolidWorks como STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Qualidade do STL Exportado" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Qualidade" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Baixa" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Alta" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 msgctxt "@text:window" msgid "Remember my choice" -msgstr "Lembrar de minha escolha" +msgstr "Lembrar minha escolha" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 msgctxt "@title:window" @@ -1328,67 +1809,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Troca os scripts de pós-processamento ativos" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Modo de Visão: Camadas" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Esquema de Cores" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Cor do Material" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Tipo de Linha" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Modo de Compatibilidade" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 -msgctxt "@label" -msgid "Show Travels" -msgstr "Mostrar Viagens" - #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" -msgid "Show Helpers" -msgstr "Mostrar Assistentes" +msgid "Show Travels" +msgstr "Exibir Percursos" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" -msgid "Show Shell" -msgstr "Mostrar Perímetro" +msgid "Show Helpers" +msgstr "Exibir Assistentes" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" -msgid "Show Infill" -msgstr "Mostrar Preenchimento" +msgid "Show Shell" +msgstr "Exibir Perímetro" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 +msgctxt "@label" +msgid "Show Infill" +msgstr "Exibir Preenchimento" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" -msgstr "Somente Mostrar Camadas Superiores" +msgstr "Somente Exibir Camadas Superiores" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" -msgstr "Mostrar 5 Camadas Superiores Detalhadas" +msgstr "Exibir 5 Camadas Superiores Detalhadas" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Topo / Base" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Parede Interna" @@ -1463,26 +1939,26 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Suavização" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Selecionar ajustes" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Selecionar Ajustes a Personalizar para este modelo" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtrar..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" -msgstr "Mostrar tudo" +msgstr "Exibir tudo" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 msgctxt "@title:window" @@ -1614,27 +2090,48 @@ msgstr "Abrir" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Buscar & Atualizar complementos" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Aqui você pode encontrar uma lista de complementos de Terceiros." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Atualizar" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" +msgid "Installed" +msgstr "Instalado" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Acordo de Licença do Complemento" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" msgstr "" +" complemento tem uma licença.\n" +"Você precisa aceitar esta licença para instalar este complemento.\n" +"Você está de acordo com os termos abaixo?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Aceitar" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Recusar" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1810,71 +2307,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Tudo está em ordem! A verificação terminou." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Não conectado a nenhuma impressora." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "A impressora não aceita comandos" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "Em manutenção. Por favor verifique a impressora" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "A conexão à impressora foi perdida" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Imprimindo..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Pausado" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Preparando..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Por favor remova a impressão" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Continuar" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Pausar" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Abortar Impressão" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Abortar impressão" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Tem certeza que deseja abortar a impressão?" @@ -1909,19 +2406,19 @@ msgid "Customized" msgstr "Personalizado" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Sempre perguntar" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Descartar e não perguntar novamente" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Manter e não perguntar novamente" @@ -1949,7 +2446,7 @@ msgstr "Informação" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 msgctxt "@label" msgid "Display Name" -msgstr "Mostrar Nome" +msgstr "Exibir Nome" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 msgctxt "@label" @@ -2039,7 +2536,7 @@ msgstr "Verificar tudo" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Calculado" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2062,7 +2559,7 @@ msgid "Unit" msgstr "Unidade" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Geral" @@ -2077,223 +2574,223 @@ msgctxt "@label" msgid "Language:" msgstr "Idioma:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Moeda:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Tema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Você precisará reiniciar a aplicação para que essas mudanças tenham efeito." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Fatiar automaticamente quando mudar ajustes." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Fatiar automaticamente" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Comportamento da área de visualização" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Ressaltar áreas sem suporte do modelo em vermelho. Sem suporte, estas áreas não serão impressas corretamente." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Exibir seções pendentes" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Move a câmera de modo que o modelo fique no centro da visão quando for selecionado." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Centralizar câmera quanto o item é selecionado" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" -msgstr "O comportamento default de zoom deve ser invertido?" +msgstr "O comportamento default de ampliação deve ser invertido?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." -msgstr "Inverter a direção do zoom de câmera." +msgstr "Inverter a direção da ampliação de câmera." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "A ampliação (zoom) deve se mover na direção do mouse?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Ampliar na direção do mouse" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Os modelos devem ser movidos na plataforma de modo que não se sobreponham?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Assegurar que os modelos sejam mantidos separados" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Os modelos devem ser movidos pra baixo pra se assentar na plataforma de impressão?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Automaticamente fazer os modelos caírem na mesa de impressão." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." -msgstr "Mostrar mensagem de advertência no leitor de g-code." +msgstr "Exibir mensagem de advertência no leitor de g-code." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Mensagem de advertência no leitor de g-code" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "A Visão de Camada deve ser forçada a ficar em modo de compatibilidade?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Forçar modo de compatibilidade da visão de camadas (requer reinício)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Abrindo e salvando arquivos" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Os modelos devem ser redimensionados dentro do volume de impressão se forem muito grandes?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Redimensionar modelos grandes" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Um modelo pode ser carregado diminuto se sua unidade for por exemplo em metros ao invés de milímetros. Devem esses modelos ser redimensionados?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" -msgstr "Redimensionar modelos diminutos" +msgstr "Redimensionar modelos minúsculos" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Um prefixo baseado no nome da impressora deve ser adicionado ao nome do trabalho de impressão automaticamente?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Adicionar prefixo de máquina ao nome do trabalho" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Um resumo deve ser exibido ao salvar um arquivo de projeto?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" -msgstr "Mostrar diálogo de resumo ao salvar projeto" +msgstr "Exibir diálogo de resumo ao salvar projeto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Comportamento default ao abrir um arquivo de projeto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Comportamento default ao abrir um arquivo de projeto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Sempre perguntar" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Sempre abrir como projeto" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Sempre importar modelos" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Quando você faz alterações em um perfil e troca para um diferent, um diálogo aparecerá perguntando se você quer manter ou aplicar suas modificações, ou você pode forçar um comportamento default e não ter o diálogo." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Sobrepujar Perfil" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Privacidade" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "O Cura deve verificar novas atualizações quando o programa for iniciado?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Verificar atualizações na inicialização" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Dados anônimos sobre sua impressão podem ser enviados para a Ultimaker? Nota: nenhuma informação pessoalmente identificável, modelos ou endereços IP são enviados ou armazenados." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Enviar informação (anônima) de impressão." #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Impressoras" @@ -2343,7 +2840,7 @@ msgid "Waiting for a printjob" msgstr "Esperando um trabalho de impressão" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Perfis" @@ -2441,7 +2938,7 @@ msgid "Export Profile" msgstr "Exportar Perfil" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Materiais" @@ -2473,14 +2970,14 @@ msgid "Import Material" msgstr "Importar Material" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr "Não foi possível importar material%1: %2" +msgstr "Não foi possível importar material %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "Material %1 importado com sucesso" +msgstr "Material %1 importado com sucesso" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 @@ -2489,17 +2986,17 @@ msgid "Export Material" msgstr "Exportar Material" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" -msgstr "Falha ao exportar material para %1: %2" +msgstr "Falha em exportar material para %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" -msgstr "Material %1 exportado com sucesso" +msgstr "Material exportado para %1 com sucesso" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Adicionar Impressora" @@ -2514,71 +3011,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Adicionar Impressora" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Parede Externa" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Paredes Internas" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Contorno" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Preenchimento" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Preenchimento de Suporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Interface de Suporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Suporte" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Percurso" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Retrações" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Outros" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00h 00min" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2646,7 +3078,7 @@ msgstr "Formato de Intercâmbio de Dados" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Bibliteca de suporte para computação científica" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2688,32 +3120,48 @@ msgctxt "@label" msgid "SVG icons" msgstr "Ícones SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Perfil:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "" +"Alguns ajustes/sobrepujanças têm valores diferentes dos que estão armazenados no perfil.\n" +"\n" +"Clique para abrir o gerenciador de perfis." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Buscar..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Copiar valor para todos os extrusores" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Ocultar este ajuste" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Não exibir este ajuste" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Manter este ajuste visível" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Configurar a visibilidade dos ajustes..." @@ -2769,24 +3217,51 @@ msgstr "" "Este ajuste é normalmente calculado, mas atualmente tem um conjunto absoluto de valores.\n" "Clique para restaurar o valor calculado." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Configuração de Impressão" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" msgstr "" +"Configuração de Impressão desabilitada\n" +"Arquivos G-Code não podem ser modificados" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00h 00min" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Informação de tempo" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Tempo de impressão" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Configuração Recomendada de Impressão

Imprimir com os ajustes recomendados para a impressora, material e qualidade selecionados." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Configuração de Impressão Personalizada

Imprimir com controle fino sobre cada parte do processo de fatiamento." @@ -2804,7 +3279,7 @@ msgstr "&Ver" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Automático: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2836,81 +3311,87 @@ msgid "No printer connected" msgstr "Nenhuma impressora conectada" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Hotend" +msgid "Extruder" +msgstr "Extrusor" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "A temperatura-alvo do hotend. O hotend vai aquecer ou esfriar na direção desta temperatura. Se for zero, o aquecimento de hotend é desligado." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "A temperatura atual deste extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "A cor do material neste extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "O material neste extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "O bico inserido neste extrusor." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Mesa de Impressão" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "A temperatura-alvo da mesa aquecida. A mesa aquecerá ou resfriará para esta temperatura. Se for zero, o aquecimento é desligado." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "A temperatura atual da mesa aquecida." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "A temperatura em que pré-aquecer a mesa." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Cancelar" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Pré-aquecer" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Aquecer a mesa antes de imprimir. Você pode continuar ajustando sua impressão enquanto ela está aquecendo, e não terá que esperar o aquecimento quando estiver pronto pra imprimir." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Impressão ativa" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Nome do Trabalho" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Tempo de Impressão" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Tempo restante estimado" @@ -3101,53 +3582,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Configurar a visibilidade dos ajustes..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Por favor carregue um modelo 3D" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Pronto para fatiar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Fatiando..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Pronto para %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Incapaz de Fatiar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Fatiamento indisponível" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Preparar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Cancelar" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Selecione o dispositivo de saída ativo" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Abrir arquivo(s)" @@ -3239,42 +3720,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "A&juda" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Abrir arquivo" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Modo de Visualização" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Ajustes" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Novo projeto" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Tem certeza que quer iniciar novo projeto? Isto esvaziará a mesa de impressão e quaisquer ajustes não salvos." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Instalar Complemento" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Abrir Arquivo(s)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Encontramos um ou mais arquivos de G-Code entre os arquivos que você selecionou. Você só pode abrir um arquivo de G-Code por vez. Se você quiser abrir um arquivo de G-Code, por favor selecione somente um." @@ -3299,102 +3775,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Não exibir resumo do projeto ao salvar novamente" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Salvar" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Preparar" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Monitorar" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Altura de Camada" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Velocidade de Impressão" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Mais Lento" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Mais Rápido" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Preenchimento:" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Preenchimento vazio deixará seu modelo oco e com baixa resistência." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Preenchimento leve (20%) dará ao seu modelo uma resistência média." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Preenchimento denso (50%) dará ao seu modelo uma resistência acima da média." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Preenchimento sólido (100%) fará seu modelo completamente sólido." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Gradual" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Preenchimento gradual aumentará gradualmente a quantidade de preenchimento em direção ao topo." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Habilitar gradual" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Gerar Suportes" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Gera estrutura que suportarão partes do modelo que têm seções pendentes. Sem estas estruturas, tais partes desabariam durante a impressão." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Extrusor do Suporte" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Selecione qual extrusor a usar para o suporte. Isto construirá estruturas de suportes abaixo do modelo para prevenir que o modelo desabe ou seja impresso no ar." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Aderência à Mesa de Impressão" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Habilita imprimir um brim (bainha) ou raft (jangada). Adicionará uma área chata em volta ou sob o objeto que é fácil de remover após a impressão ter finalizado." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Precisa de ajuda para melhorar sua impressões?
Leia os Guias de Resolução de Problema da Ultimaker" @@ -3403,8 +3864,8 @@ msgstr "Precisa de ajuda para melhorar sua impressões?
Leia os msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Imprimir Modelo Selecionado com %1" +msgstr[1] "Imprimir Modelos Selecionados com %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3431,372 +3892,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Registro do Motor de Fatiamento" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Material" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Verificar compatibilidade de material" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Clique para verificar a compatibilidade do material em Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Perfil:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Alguns ajustes/sobrepujanças têm valores diferentes dos que estão armazenados no perfil.\n" -"\n" -"Clique para abrir o gerenciador de perfis." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Provê um modo de alterar as configurações da máquina (tais como volume de impressão, tamanho de bico, etc)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Ação de Configurações de Máquina" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Provê a visão de Raios-X." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Visão de Raios-X" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Provê suporte à leitura de arquivos X3D." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "Leitor de X3D" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Escreve G-Code para aquivo." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "Gerador de G-Code" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Descarrega o conteúdo de todas as configurações em um arquivo HTML." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Modo Deus" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Aceita G-Code e o envia através da WiFi para uma WiFi-Box Doodle3D." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "WiFi-Box Doodle3D" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Mostra alterações desde a última versão verificada." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Registro de Alterações" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Cria um perfil de alterações achatado." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Achatador de Perfil" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Aceita G-Code e o envia a uma impressora. O complemento também pode atualizar o firmware." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "Impressão USB" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Provê suporte a escrita e reconhecimento de drives a quente." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Complemento de Dispositivo de Escrita Removível" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Gerencia conexões de rede a impressoras Ultimaker 3" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "Conexão de Rede UM3" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Conexão de Rede UM3 (Cluster)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Verifica por atualizações de firmware." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Verificador de Atualizações de Firmware" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Te dá a possibilidade de abrir certos arquivos via o próprio SolidWorks. Tais são convertidos e carregados no Cura" #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "Integração ao SolidWorks" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Extensão que permite scripts criados por usuários para pós-processamento" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Pós-processamento" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Automaticamente salva Preferências, Máquinas e Perfis após alterações." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Auto-Salvar" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Submete informações de fatiamento anônimas. Pode ser desabilitado nas preferências." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Informação de fatiamento" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Provê capacidade de ler e escrever perfis de material baseado em XML." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Perfis de Material" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Provê suporte a importação de perfis de versões legadas do Cura." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Leitor de Perfis de Cura Legado" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Provê suporte a importar perfis de arquivos G-Code." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "Leitor de Perfis de G-Code" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Provê a visão de Camadas." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Visão de Camadas" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Atualiza configurações do Cura 2.5 para o Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "Atualização de Versão de 2.5 para 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Atualiza configuração do Cura 2.7 para o Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "Atualização de Versão de 2.7 para 3.0" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Atualiza configurações do Cura 2.6 para o Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Atualização de Versão de 2.6 para 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Atualiza configurações do Cura 2.1 para o Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Atualização de Versão de 2.1 para 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Atualiza configurações do Cura 2.2 para o Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Atualização de Versão de 2.2 para 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Habilita a geração de geometria imprimível de arquivos de imagem 2D." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Leitor de Imagens" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Provê a ligação ao backend de fatiamento CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "CuraEngine Backend" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Provê Ajustes Por Modelo." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Ferramenta de Ajustes Por Modelo" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Provê suporte à leitura de arquivos 3MF." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "Leitor de 3MF" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Busca, gerencia e instala novos complementos." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Navegador de Complementos" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Provê uma visualização de malha sólida normal." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Visão Sólida" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Permite carregar e exibir arquivos G-Code." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "Leitor de G-Code" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Provê suporte à exportação de perfis do Cura." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Gravador de Perfis do Cura" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Provê suporte à escrita de arquivos 3MF." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "Gerador de 3MF" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Provê ações de máquina para Ultimaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Ações de máquina Ultimaker" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Provê suporte à importação de perfis do Cura." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Leitor de Perfis do Cura" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Raios X" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Aceita G-Code e o envia por wifi para o aplicativo de celular Doodle3D." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Impressão Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Imprimir com Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Imprimir com " + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Habilitar dispositivos de escaneamento..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "Arquivo X3G" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Salvando em Unidade Removível {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Incapaz de salvar para {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Por favor tenha em mente que você precisa reabrir seu arquivo Solidworks manualmente! Recarregar o modelo não irá funcionar!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Camadas" + +#~ msgid "Browse plugins" +#~ msgstr "Navegar por complementos" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Sólido" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "O arquivo {0} já existe. Tem certeza que quer sobrescrevê-lo?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Falha na exportação de perfil para {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Falha na exportação de perfil para {0}: Complemento de gravação acusou falha." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Perfil exportado para {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Falha na importação de perfil de {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Ajustes de Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Imprimir em: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Temperatura do Extrusor: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Temperatura da Mesa: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Modo de Visão: Camadas" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Não foi possível importar material%1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Material %1 importado com sucesso" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Falha ao exportar material para %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Material %1 exportado com sucesso" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Hotend" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Modo de Visualização" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Imprimir" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Preenchimento vazio deixará seu modelo oco e com baixa resistência." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Preenchimento leve (20%) dará ao seu modelo uma resistência média." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Preenchimento denso (50%) dará ao seu modelo uma resistência acima da média." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Preenchimento sólido (100%) fará seu modelo completamente sólido." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Gradual" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Provê suporte à escrita de arquivos X3G" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "Gerador de X3G" #~ msgctxt "@label" #~ msgid "Machine Settings action" @@ -4226,7 +4883,7 @@ msgstr "" #~ msgctxt "@label" #~ msgid "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Precisa de ajuda para melhorar suas impressões? Leia o Guia de Solução de Problemas da Ultimaker." +#~ msgstr "Precisa de ajuda para melhorar suas impressões? Leia o Guia de Solução de Problemas da Ultimaker." #~ msgctxt "@info:status" #~ msgid "Connected over the network to {0}. Please approve the access request on the printer." diff --git a/resources/i18n/ptbr/fdmextruder.def.json.po b/resources/i18n/pt_BR/fdmextruder.def.json.po similarity index 97% rename from resources/i18n/ptbr/fdmextruder.def.json.po rename to resources/i18n/pt_BR/fdmextruder.def.json.po index 66b0beb201..65e6e678fe 100644 --- a/resources/i18n/ptbr/fdmextruder.def.json.po +++ b/resources/i18n/pt_BR/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-11 12:00-0300\n" +"PO-Revision-Date: 2017-10-06 08:00-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio and CoderSquirrel \n" -"Language: Brazillian Portuguese\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pt\n" -"Country-Code: BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: fdmextruder.def.json @@ -42,12 +40,12 @@ msgstr "O extrusor usado para impressão. Isto é usado em multi-extrusão." #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID do Bico" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "O identificador de bico para um carro extrusor, tal como \"AA 0.4\" e \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/ptbr/fdmprinter.def.json.po b/resources/i18n/pt_BR/fdmprinter.def.json.po similarity index 89% rename from resources/i18n/ptbr/fdmprinter.def.json.po rename to resources/i18n/pt_BR/fdmprinter.def.json.po index 1463eb0c8d..3458c5cafe 100644 --- a/resources/i18n/ptbr/fdmprinter.def.json.po +++ b/resources/i18n/pt_BR/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-13 14:00-0300\n" +"PO-Revision-Date: 2017-10-06 10:00-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio and CoderSquirrel \n" -"Language: Brazillian Portuguese\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: pt\n" -"Country-Code: BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: fdmprinter.def.json @@ -42,12 +40,12 @@ msgstr "Nome do seu modelo de impressora 3D." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Exibir Variantes de Máquina" #: fdmprinter.def.json msgctxt "machine_show_variants description" msgid "Whether to show the different variants of this machine, which are described in separate json files." -msgstr "Indique se deseja mostrar as variantes desta máquina, que são descrita em arquivos .json separados." +msgstr "Indique se deseja exibir as variantes desta máquina, que são descrita em arquivos .json separados." #: fdmprinter.def.json msgctxt "machine_start_gcode label" @@ -90,7 +88,7 @@ msgstr "GUID do material. Este valor é ajustado automaticamente. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Aguardar o Aquecimento da Mesa" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -100,7 +98,7 @@ msgstr "Indique se desejar inserir o comando para aguardar que a temperatura-alv #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Aguardar Aquecimento do Bico" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -110,7 +108,7 @@ msgstr "Indique se desejar inserir o comando para aguardar que a temperatura-alv #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Incluir Temperaturas de Material" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -120,7 +118,7 @@ msgstr "Indique se deseja incluir comandos de temperatura do bico no início do #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Incluir Temperatura da Mesa" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -130,7 +128,7 @@ msgstr "Indique se deseja incluir comandos de temperatura da mesa de impressão #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Largura da Mesa" #: fdmprinter.def.json msgctxt "machine_width description" @@ -140,7 +138,7 @@ msgstr "A largura (direção X) da área imprimível." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Profundidade da Mesa" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -150,7 +148,7 @@ msgstr "A profundidade (direção Y) da área imprimível." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Forma da Mesa" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -170,7 +168,7 @@ msgstr "Elíptica" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Altura do Volume" #: fdmprinter.def.json msgctxt "machine_height description" @@ -180,7 +178,7 @@ msgstr "A altura (direção Z) do volume imprimível." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Tem Mesa Aquecida" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -190,7 +188,7 @@ msgstr "Indica se a plataforma de impressão pode ser aquecida." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Origem é no Centro" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -310,17 +308,17 @@ msgstr "Tipo de G-Code a ser gerado para a impressora." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumétrico)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -405,12 +403,12 @@ msgstr "Diferença de altura entre a ponta do bico e o sistema de eixos X ou X e #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "ID do Bico" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "O identificador do bico para o carro extrusor, tais como \"AA 0.4\" ou \"BB 0.8\"" #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -655,12 +653,12 @@ msgstr "Largura de extrusão das paredes internas (todas menos a mais externa)." #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Largura de extrusão da Superfície Superior" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Largura de extrusão de um filete das áreas no topo da peça." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -745,12 +743,12 @@ msgstr "Largura de um filete usado na torre de purga." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Largura de Extrusão da Camada Inicial" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Multiplicador da largura de extrusão da primeira camada. Aumentar este ajuste pode melhorar a aderência à mesa." #: fdmprinter.def.json msgctxt "shell label" @@ -762,35 +760,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Perímetro" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Extrusor da Parede Externa" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "O carro extrusor usado para imprimir a parede externa. Este ajuste é usado em multi-extrusão." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Extrusor das Paredes Internas" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "O carro extrusor usado para imprimir as paredes internas. Este ajuste é usado em multi-extrusão." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -800,7 +788,7 @@ msgstr "Espessura de Parede" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "A espessura das paredes na direção horizontal. Este valor dividido pela largura de extrusão da parede define o número de filetes da parede." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -825,67 +813,67 @@ msgstr "Distância do percurso inserido após a parede externa para esconder mel #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Extrusor da Superfície Superior" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "O carro extrusor usado para imprimir a parte superior da peça. Este ajuste é usado em multi-extrusão." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Camadas da Superfície Superior" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "O número de camadas da superfície superior. Geralmente somente uma camada é suficiente para gerar superfícies de alta qualidade." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Padrão da Superfície Superior" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "O padrão das camadas superiores." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Linhas" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concêntrico" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Ziguezague" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Direções dos Filetes da Superfície Superior" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Uma lista de direções inteiras de filete a usar quando as camadas superiores usam o padrão de linhas ou ziguezague. Elementos desta lista são usados sequencialmente de acordo com o progresso das camadas e quando se chega ao fim da lista, se volta ao começo. Os itens da lista são separados por vírgulas e a lista inteira é contida em colchetes. O default é uma lista vazia que significa o uso dos ângulos default (45 e 135 graus)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Extrusor Superior/Inferior" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "O carro extrusor usado para imprimir as paredes superiores e inferiores. Este ajuste é usado na multi-extrusão." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1060,12 +1048,12 @@ msgstr "Compensa o fluxo para partes de uma parede interna sendo impressa onde j #: fdmprinter.def.json msgctxt "fill_perimeter_gaps label" msgid "Fill Gaps Between Walls" -msgstr "Preenche Vãos Entre Paredes" +msgstr "Preenche Lacunas Entre Paredes" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps description" msgid "Fills the gaps between walls where no walls fit." -msgstr "Preenche os vãos que ficam entre paredes quando paredes intermediárias não caberiam." +msgstr "Preenche as lacunas que ficam entre paredes quando paredes intermediárias não caberiam." #: fdmprinter.def.json msgctxt "fill_perimeter_gaps option nowhere" @@ -1080,12 +1068,12 @@ msgstr "Em todos os lugares" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Imprimir Paredes Finas" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Imprime partes do modelo que são horizontalmente mais finas que o tamanho do bico." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1100,12 +1088,12 @@ msgstr "Deslocamento adicional aplicado para todos os polígonos em cada camada. #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Expansão Horizontal da Camada Inicial" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Deslocamento adicional aplicado a todos os polígonos da primeira camada. Um valor negativo pode compensar pelo esmagamento da primeira camada conhecido como \"pata de elefante\"." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1132,6 +1120,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Aleatório" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Canto Mais Agudo" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1152,25 +1145,65 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "A coordenada Y da posição onde iniciar a impressão de cada parte em uma camada." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Preferência do Canto da Costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Controla se cantos no contorno do modelo influenciam a posição da costura. Nenhum significa que cantos não têm influência na posição da costura. Esconder Costura torna mais provável que ela ocorra em um canto interior. Expor Costura torna mais provável que ela ocorra em um canto exterior. Esconder ou Expor Costura torna mais provável que ocorra em um canto, externo ou externo." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Nenhum" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Esconder Costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Expor Costura" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Esconder ou Expor Costura" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Costura Z Relativa" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Quando habilitado, as coordenadas da costura Z são relativas ao centro de cada parte. Quando desabilitado, as coordenadas definem uma posição absoluta na plataforma de impressão." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" msgid "Ignore Small Z Gaps" -msgstr "Ignorar Pequenos Vãos em Z" +msgstr "Ignorar Pequenas Lacunas em Z" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." -msgstr "Quando o modelo tem pequenos vãos verticais, aproximadamente 5% de tempo de computação adicional pode ser gasto ao gerar camada externa superior e inferior nestes espaços estreitos. Em tal caso, desabilite este ajuste." +msgstr "Quando o modelo tem pequenas lacunas verticais, aproximadamente 5% de tempo de computação adicional pode ser gasto ao gerar camada externa superior e inferior nestes espaços estreitos. Em tal caso, desabilite este ajuste." + +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Contagem de Paredes Extras de Contorno" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Substitui a parte externa do padrão superior/inferir com um número de linhas concêntricas. Usar uma ou duas linhas melhora tetos e topos que começam a ser construídos em cima de padrões de preenchimento." #: fdmprinter.def.json msgctxt "infill label" @@ -1185,12 +1218,12 @@ msgstr "Preenchimento" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Extrusor do Preenchimento" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "O carro extrusor usado para imprimir preenchimento. Este ajuste é usado em multi-extrusão." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1219,8 +1252,8 @@ msgstr "Padrão de Preenchimento" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Padrão ou estampa do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague trocam de direção em camadas alternadas, reduzindo custo de material. Os padrões de grade, triângulo, cúbico, tetraédrico e concêntrico são totalmente impressos a cada camada. Os padrões cúbico e tetraédrico mudam a cada camada para prover uma distribuição mais igualitária de força para cada direção." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1249,8 +1282,13 @@ msgstr "Subdivisão Cúbica" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Tetraédrico" +msgid "Octet" +msgstr "Octeto" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Quarto Cúbico" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1267,6 +1305,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Ziguezague" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Cruzado" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Cruzado 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Conectar Linhas de Preenchimento" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Conecta as extremidades onde o padrão de preenchimento se encontra com a parede interna usando linhas que seguem a forma dessa parede. Habilitar este ajuste pode fazer o preenchimento aderir melhor às paredes e reduz os efeitos do preenchimento na qualidade das superfícies verticais. Desabilitar este ajuste reduz a quantidade de material usado." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1315,7 +1373,7 @@ msgstr "Porcentagem de Sobreposição do Contorno" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "A quantidade de sobreposição entre o contorno e as paredes como uma porcentagem da largura de extrusão. Uma sobreposição leve permite que as paredes se conectem firmemente ao contorno. Este ajuste é uma porcentagem das larguras de extrusão média do contorno e da parede mais interna." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1388,34 +1446,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Não gerar preenchimento para áreas menores que esta (usar contorno)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Expandir Contorno Para Preenchimento" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Largura de Remoção de Contorno" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Expandir áreas de perímetro das partes superiores e inferiores de superfícies chatas. Por default, o perímetro para sob as paredes que rodeiam o preenchimento mas isso pode fazer com que buracos apareçam caso a densidade de preenchimento seja baixa. Este ajuste estenda os perímetros além das linhas de parede de modo que o preenchimento da próxima camada fique em cima de perímetros." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "A maior largura das áreas de contorno que serão removidas. Cada área de contorno menor que este valor desaparecerá. Isto pode ajudar em limitar a quantidade de tempo e material gastos em impressão de contornos inferiores e superiores em superfícies inclinadas do modelo." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Expandir Contorno do Topo Para Preenchimento" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Largura de Remoção do Contorno Superior" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Expande as áreas de perímetro do topo (áreas com ar acima delas) de modo que suportem o preenchimento de cima." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "A maior largura das áreas de contorno superiores que serão removidas. Cada área de contorno menor que este valor desaparecerá. Isto pode ajudar em limitar a quantidade de tempo e material gastos em impressão de contornos superiores em superfícies inclinadas do modelo." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Expande Contorno da Base Para Preenchimento" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Largura de Remoção do Contorno Inferior" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Expande as áreas de perímetro da base (áreas com ar abaixo delas) de modo que se ancorem nas camadas de preenchimento embaixo e acima." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "A maior largura das áreas de contorno inferiores que serão removidas. Cada área de contorno menor que este valor desaparecerá. Isto pode ajudar em limitar a quantidade de tempo e material gastos em impressão de contornos inferiores em superfícies inclinadas do modelo." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1424,8 +1482,28 @@ msgstr "Distância de Expansão do Contorno" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "A distância que os contornos são expandidos para dentro do preenchimento. A distância default é suficiente para ligar o vão entre as linhas de preenchimento e impedirá que buracos apareçam no contorno onde ele encontrar a parede em que a densidade de preenchimento é baixa. Uma distância menor pode ser suficiente." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Distância de Expansão do Contorno Superior" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "A distância com que os contornos superiores são expandidos para dentro do preenchimento. Valores mais altos fazem o contorno se anexar melhor ao padrão de preenchimento e fazem as paredes da camada acima aderirem melhor ao contorno. Valores mais baixos economizam a quantidade de material usado." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Distância de Expansão do Contorno Inferior" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "A distância com que os contornos inferiores são expandidos para dentro do preenchimento. Valores mais altos fazem o contorno se anexar melhor ao padrão de preenchimento e fazem as paredes da camada abaixo aderirem melhor ao contorno. Valores mais baixos economizam a quantidade de material usado." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1790,12 +1868,12 @@ msgstr "A velocidade em que todas as paredes interiores são impressas. Imprimir #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Velocidade da Superfície Superior" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "A velocidade com que as camadas superiores são impressas." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1807,16 +1885,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Velocidade em que as camadas superiores e inferiores são impressas." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2030,12 +2098,12 @@ msgstr "Aceleração com que se imprimem as paredes interiores." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Aceleração da Superfície Superior" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "A aceleração com a qual as camadas da superfície superior são impressas." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2047,16 +2115,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Aceleração com que as camadas superiores e inferiores são impressas." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2230,12 +2288,12 @@ msgstr "A máxima mudança de velocidade instantânea em uma direção com que a #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Jerk da Superfície Superior" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "A máxima mudança de velocidade instantânea em uma direção com que as camadas da superfície superior são impressas." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2247,16 +2305,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "A máxima mudança de velocidade instantânea em uma direção com que as camadas superiores e inferiores são impressas." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2772,6 +2820,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Ziguezague" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Cruzado" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2784,23 +2837,33 @@ msgstr "Conecta os ziguezagues. Isto aumentará a força da estrutura de suporte #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Quebrar Suportes em Pedaços" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Evitar algumas conexões de linha de suporte para fazer a estrutura de suporte mais fácil de ser removida. Este ajuste é aplicável ao padrão de preenchimento de suporte de ziguezague." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Tamanho do Pedaço de Suporte" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Evita uma conexão entre linhas de suporte uma vez a cada N milímetros para fazer a estrutura de suporte mais fácil de ser removida." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Contagem de Linhas de Pedaço de Suporte" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Evitar uma em cada N linhas de conexão para fazer a estrutura de suporte mais fácil de ser removida." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2935,32 +2998,32 @@ msgstr "Quantidade de deslocamento aplicado a todos os polígonos do suporte em #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Espessura de Camada do Preenchimento de Suporte" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "A espessura por camada do material de preenchimento de suporte. Este valor deve sempre ser um múltiplo da altura de camada e é arredondado." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Passos de Preenchimento Gradual de Suporte" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Número de vezes para reduzir a densidade de preenchimento de suporte pela metade quando avançando abaixo das superfícies inferiores. Áreas mais próximas ao topo terão maior densidade, até a Densidade de Preenchimento de Suporte." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Altura de Passo do Preenchimento Gradual de Suporte" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "A altura do preenchimento de suporte de dada densidade antes de trocar para metade desta densidade." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3386,6 +3449,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Imprimir o Brim somente no lado de fora do modelo. Isto reduz a quantidade de brim a ser removida no final, e não reduz tanto a aderência à mesa." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Deslocamento em Z da Camada Inicial" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "O extrusor é deslocado da altura normal da primeira camada por esta distância. Pode ser positiva (elevada) ou negativa (abaixada). Alguns tipos de filamento aderem à camada de impressão melhor se o extrusor for elevado ligeiramente." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Camadas de Amenização do Deslocamento Z" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Quando não for zero, o deslocamento em Z é reduzido a zero depois deste número de camadas. O valor zero significa que o deslocamento em Z permanece constante para todas as camadas da impressão." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3396,6 +3479,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Se o Raft estiver habilitado, esta é a área extra do raft em volta do modelo que também faz parte dele. Aumentar esta margem criará um raft mais forte mas também gastará mais material e deixará menos área para sua impressão." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Amaciamento do Raft" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Este ajuste controla quantos cantos interiores no contorno do raft são arredondados. Cantos no sentido interior são arredondados para um semicírculo com raio igual ao valor dado aqui. Este ajuste também remove buracos que sejam menores que tal círculo no contorno do raft." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3779,12 +3872,12 @@ msgstr "Depois de trocar extrusores, limpar o material escorrendo do bico na pri #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Volume de Purga da Torre de Purga" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Quantidade de filamento a ser purgado na torre de purga. A purga é útil para compensar filamento perdido por escorrimento durante inatividade do bico." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4071,6 +4164,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Suaviza os contornos espiralizados para reduzir a visibilidade da costura em Z (esta costura será quase invisível na impressão mas ainda pode ser vista na visão de camadas). Note que suavizar tenderá a remover detalhes finos de superfície." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Extrusão Relativa" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Usar extrusão relativa ao invés de absoluta. Usar passos de extrusor relativos permite pós-processamento do G-Code mais fácil. No entanto, não é suportado por todas as impressoras e pode produzir desvios bem pequenos na quantidade de material depositado comparado aos passos de extrusor absolutos. Independente deste ajuste, o modo de extrusão sempre será configurado para absoluto antes que qualquer script de G-Code seja escrito." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4081,6 +4184,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "experimental!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Otimizar Ordem de Impressão de Paredes" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Otimiza a ordem em que paredes são impressas de modo a reduzir o número de retrações e a distância percorrida. A maioria das peças se beneficiarão deste ajuste habilitado mas algumas podem acabar levando mais tempo, portanto por favor compare as estimativas de tempo de impressão com e sem otimização." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4191,16 +4304,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "A velocidade pela qual se mover durante a desengrenagem, relativa à velocidade do caminho de extrusão. Um valor ligeiramente menor que 100% é sugerido, já que durante a desengrenagem a pressão dentro do hotend cai." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Contagem de Paredes Extras de Contorno" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Substitui a parte externa do padrão superior/inferir com um número de linhas concêntricas. Usar uma ou duas linhas melhora tetos e topos que começam a ser construídos em cima de padrões de preenchimento." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4211,6 +4314,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Alterna a direção em que as camadas superiores e inferiores são impressas. Normalmente elas são impressas somente na diagonal. Este ajuste permite direções somente no X e somente no Y." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Tamanho de Bolso do Cruzado 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "O tamanho dos bolso em cruzamentos quádruplos no padrão cruzado 3D em alturas onde o padrão esteja se tocando." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Bolso Alternados de Cruzado 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Somente aplicar bolso em metades dos cruzamentos quádruplos no padrão cruzado 3D e alternar a localização dos bolso entre alturas onde o padrão esteja se tocando." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4224,12 +4347,12 @@ msgstr "Imprime o preenchimento intermitentemente de modo que o filamento se enr #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Passos do Preenchimento de Espaguete" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Ajuste para se imprimir o preenchimento espaguete em passos discretos ou extrudar todo o filamento de preenchimento no final da impressão." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4274,12 +4397,12 @@ msgstr "Ajusta a densidade do preenchimento espaguete. Note que a Densidade de P #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Volume Extra do Preenchimento Espaguete" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Um termo de correção para ajustar o volume total sendo extrudado a cada vez que se preencher com estilo espaguete." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4623,62 +4746,102 @@ msgstr "Distância entre o bico e os filetes descendentes horizontais. Espaços #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Habilitar Passar a Ferro" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Passar sobre a superfície superior depois de impressa, mas sem extrudar material. A idéia é derreter o plástico do topo ainda mais, criando uma superfície mais lisa." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Passar a Ferro Somente Camada Mais Alta" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Somente executar a passagem a ferro na última camada da malha. Isto economiza tempo se as camadas abaixo não precisarem de um acabamento de superfície amaciado." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Padrão de Passagem a Ferro" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "O padrão a usar quando se passa a ferro as superfícies superiores." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Concêntrico" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Ziguezague" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Espaçamento de Passagem a Ferro" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "A distância entre as trajetórias de passagem a ferro." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Fluxo de Passagem a Ferro" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "A quantidade de material, relativa ao filete normal de extrusão, para extrudar durante a passagem a ferro. Manter o bico com algum material ajuda a preencher algumas das lacunas e fendas da superfície superior, mas material demais resulta em superextrusão e verrugas nas laterais da superfície." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Penetração da Passagem a Ferro" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "A distância a manter das arestas do modelo. Passar a ferro as arestas da malha podem resultar em um aspecto entalhado da sua peça." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Velocidade de Passar o Ferro" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "A velocidade com a qual o ajuste de passar ferro é aplicado sobre a superfície superior." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Aceleração de Passar a Ferro" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "A aceleração com que o recurso de passar a ferro é feito." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Jerk de Passar a Ferro" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "A máxima mudança de velocidade instantânea em uma direção com que o recurso de passar a ferro é feito." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4740,6 +4903,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Matriz de transformação a ser aplicada ao modelo após o carregamento do arquivo." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Extrusor das Paredes" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "O carro extrusor usado para imprimir paredes. Este ajuste é usado em multi-extrusão." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Padrão ou estampa do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague trocam de direção em camadas alternadas, reduzindo custo de material. Os padrões de grade, triângulo, cúbico, tetraédrico e concêntrico são totalmente impressos a cada camada. Os padrões cúbico e tetraédrico mudam a cada camada para prover uma distribuição mais igualitária de força para cada direção." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Tetraédrico" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Expandir Contorno Para Preenchimento" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Expandir áreas de perímetro das partes superiores e inferiores de superfícies chatas. Por default, o perímetro para sob as paredes que rodeiam o preenchimento mas isso pode fazer com que buracos apareçam caso a densidade de preenchimento seja baixa. Este ajuste estenda os perímetros além das linhas de parede de modo que o preenchimento da próxima camada fique em cima de perímetros." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Expandir Contorno do Topo Para Preenchimento" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Expande as áreas de perímetro do topo (áreas com ar acima delas) de modo que suportem o preenchimento de cima." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Expande Contorno da Base Para Preenchimento" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Expande as áreas de perímetro da base (áreas com ar abaixo delas) de modo que se ancorem nas camadas de preenchimento embaixo e acima." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "A distância que os contornos são expandidos para dentro do preenchimento. A distância default é suficiente para ligar o vão entre as linhas de preenchimento e impedirá que buracos apareçam no contorno onde ele encontrar a parede em que a densidade de preenchimento é baixa. Uma distância menor pode ser suficiente." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Pular Algumas Conexões de Ziguezague" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Pula algumas conexões de Ziguezague para fazer a estrutura de suporte mais fácil de ser removida." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Contagem de Pulos das Conexões de Ziguezague" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Pular uma em cada N linhas de conexão para fazer a estrutura de suporte mais fácil de ser removida." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Mostrar variantes da máquina" diff --git a/resources/i18n/ru/cura.po b/resources/i18n/ru_RU/cura.po similarity index 74% rename from resources/i18n/ru/cura.po rename to resources/i18n/ru_RU/cura.po index 501da1bd5a..34f7262a1f 100755 --- a/resources/i18n/ru/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -2,33 +2,91 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-02 23:56+0300\n" +"PO-Revision-Date: 2017-09-23 10:40+0300\n" "Last-Translator: Ruslan Popov \n" "Language-Team: Ruslan Popov\n" -"Language: ru\n" +"Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ru\n" -"Country-Code: RU\n" -"X-Generator: Poedit 2.0\n" +"X-Generator: Poedit 2.0.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Печать прервана" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "блокированный" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Необходимое действие" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Не удается начать печать" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Данный принтер не настроен для управления группой принтеров Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Заканчивается на: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Данный принтер управляет группой из %1 принтеров Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} завершил печать '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Печать завершена" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "Плагины" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Просмотр плагинов..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Установленные плагины..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Параметры принтера" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "Рентген" +msgid "X-Ray view" +msgstr "Просмотр в рентгене" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -40,40 +98,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "Файл GCode" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "Принимает G-Code и отправляет его через WiFi на Doodle3D WiFi-Box." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Печать Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Печать через Doodle3D WiFi-Box" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Печать через Doodle3D WiFi-Box" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Соединение с Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Отмена" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Отправка данных через Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Невозможно отправить данные через Doodle3D Connect. Другое задание активно?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Сохранение данных на Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Файл отправлен через Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Открыть соединение..." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Печать через " - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Активировать сканеры..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Открыть Doodle3D Connect web интерфейс" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -115,16 +202,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Невозможно запустить новое задание, потому что принтер занят или не подключен." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Подробности печати" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Данный принтер не поддерживает печать через USB, потому что он использует UltiGCode диалект." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB печать" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Невозможно запустить новую задачу, так как принтер не поддерживает печать через USB." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Внимание" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -136,10 +243,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "Не могу найти прошивку, подходящую для принтера в %s." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G файл" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Прошивка принтера" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -154,47 +261,79 @@ msgstr "Сохранить на внешний носитель {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" msgstr "Сохранение на внешний носитель {0}" +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Сохранение" + #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" -msgstr "Не могу сохранить {0}: {1}" +msgstr "Не могу записать в {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Сохранено на внешний носитель {0} как {1}" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "Не могу найти имя файла при записи в {device}." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Извлечь" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Извлекает внешний носитель {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Невозможно сохранить на внешний носитель {0}: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Ошибка" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Сохранено на внешний носитель {0} как {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Файл сохранён" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Извлечь" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Извлекает внешний носитель {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Извлечено {0}. Вы можете теперь безопасно извлечь носитель." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Безопасное извлечение устройства" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -205,247 +344,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Внешний носитель" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Печать через сеть" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Печать через сеть" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "Запрошен доступ к принтеру. Пожалуйста, подтвердите запрос на принтере" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Состояние соединения" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Состояние соединения" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Повторить" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Послать запрос доступа ещё раз" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Доступ к принтеру получен" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Нет доступа к использованию этого принтера. Невозможно отправить задачу на печать." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Запросить доступ" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Отправить запрос на доступ к принтеру" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Подключен по сети. Пожалуйста, подтвердите запрос на принтере." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Подключен по сети." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Подключен по сети. Нет доступа к управлению принтером." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Запрос доступа к принтеру был отклонён." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Запрос доступа был неудачен из-за таймаута." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Соединение с сетью было потеряно." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Соединение с принтером было потеряно. Проверьте свой принтер, подключен ли он." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Невозможно запустить новую задачу на печать, принтер занят. Текущий статус принтера %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Состояние принтера" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Невозможно запустить новую задачу на печать. PrinterCore не был загружен в слот {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Невозможно запустить новую задачу на печать. Материал не загружен в слот {0}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Недостаточно материала в катушке {0}." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "Разный PrintCore (Cura: {0}, Принтер: {1}) выбран для экструдера {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Разный материал (Cura: {0}, Принтер: {1}) выбран для экструдера {2}" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "PrintCore {0} не откалибровано. Необходимо выполнить XY калибровку для принтера." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Вы уверены, что желаете печатать с использованием выбранной конфигурации?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Есть несовпадение между конфигурацией или калибровкой принтера и Cura. Для лучшего результата, всегда производите слайсинг для PrintCore и материала, которые установлены в вашем принтере." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Несовпадение конфигурации" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Отправка данных на принтер" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "Отмена" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Отправка данных" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Невозможно отправить данные на принтер. Другая задача всё ещё активна?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Прерывание печати…" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Печать прервана. Пожалуйста, проверьте принтер" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Печать приостановлена..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Печать возобновлена..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Синхронизация с вашим принтером" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Желаете использовать текущую конфигурацию принтера в Cura?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Модуль PrintCore и/или материал в вашем принтере отличается от тех, что вы используете в текущем проекте. Для наилучшего результата всегда указывайте правильный модуль PrintCore и материалы, которые вставлены в ваш принтер." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Подключиться через сеть" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Данный принтер не настроен для управления группой подключенных принтеров Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Данный принтер управляет группой из {count} подключенных принтеров Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} завершил печать '{job_name}'. Пожалуйста, освободите область печати." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} назначен для печати '{job_name}'. Пожалуйста, измените конфигурацию принтера, чтобы она соответствовала заданию." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Отправка новых заданий (временно) заблокирована, идёт отправка предыдущего задания." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Невозможно отправить новое задание: данный 3D принтер (ещё) не настроен на управление группой подключенных принтеров Ultimaker 3." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "Отправляем {file_name} на группу {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "Отправка {file_name} на группу {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Показать задания на печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Открыть интерфейс с заданиями печати в вашем браузере." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Невозможно отправить задание на группу {cluster_name}." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Рекомендуется регулярно обновлять прошивку принтера {machine_name}. Это может сделано когда {machine_name} подключен к сети или к USB." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Доступна новая прошивка %s" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "Скачать" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Не могу получить информацию об обновлениях." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "Возникли ошибки во время открытия файла SolidWorks! Пожалуйста, проверьте может ли SolidWorks открыть этот файл без проблем!" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "Файл компонентов SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "Файл сборки SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Настройка" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "Ошибка при запуске %s!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -454,9 +720,14 @@ msgstr "Изменить G-код" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura собирает анонимную статистику о нарезке модели. Вы можете отключить это в настройках." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Сбор данных" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Отменить" @@ -474,14 +745,19 @@ msgstr "Файл G-code" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Слои" +msgid "Layer view" +msgstr "Просмотр слоёв" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Cura не аккуратно отображает слои при использовании печати через кабель" +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Просмотр слоёв" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -507,24 +783,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "GIF изображение" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Выбранный материал несовместим с выбранным принтером или конфигурацией." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Невозможно нарезать модель, используя текущий материал, так как он несовместим с выбранной машиной или конфигурацией." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Невозможно нарезать" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Не могу выполнить слайсинг на текущих настройках. Проверьте следующие настройки: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "Слайсинг невозможен так как черновая башня или её позиция неверные." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Нечего нарезать, так как ни одна модель не попадает в объём принтера. Пожалуйста, отмасштабируйте или поверните модель." @@ -535,6 +818,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Обработка слоёв" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Информация" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -546,13 +834,13 @@ msgid "Configure Per Model Settings" msgstr "Правка параметров модели" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Рекомендованная" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Своя" @@ -563,25 +851,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "Файл 3MF" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Сопло" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Просмотр плагинов" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Невозможно получить идентификатор плагин {0}" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Внимание" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Браузер плагинов" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Твёрдое тело" +msgid "Solid view" +msgstr "Просмотр модели" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -593,7 +893,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "Обработка G-code" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "Параметры G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Перед отправкой G-code на принтер удостоверьтесь в его соответствии вашему принтеру и его настройкам. Возможны неточности в G-code." @@ -615,7 +921,7 @@ msgid "Cura Project 3MF file" msgstr "3MF файл проекта Cura" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Выбор обновлений" @@ -635,18 +941,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Выравнивание стола" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Внешняя стенка" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Внутренние стенки" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Покрытие" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Заполнение" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Заполнение поддержек" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Связующий слой поддержек" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Поддержки" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Юбка" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Перемещение" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Откаты" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Другое" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Предообратка файла {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Материал не загружен" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Неизвестный материал" @@ -656,116 +1017,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Поиск места для новых объектов" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Поиск места" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Невозможно разместить все объекты внутри печатаемого объёма" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Не могу найти место" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Файл уже существует" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "Файл {0} уже существует. Вы желаете его перезаписать?" +msgstr "Файл {0} уже существует. Вы уверены, что желаете перезаписать его?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Своё" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Собственный материал" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Выбранный материал несовместим с выбранным принтером или конфигурацией." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Несовместимый материал" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Диаметр выбранного материала показывает, что он несовместим с текущим принтером." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Отмена" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Отмена изменения диаметра материала." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" msgstr "Невозможно экспортировать профиль в {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." msgstr "Невозможно экспортировать профиль в {0}: Плагин записи уведомил об ошибке." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" msgstr "Экспортирование профиля в {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Экспорт подробностей" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" msgstr "Невозможно импортировать профиль из {0}: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Успешно импортирован профиль {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Профиль {0} имеет неизвестный тип файла или повреждён." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Собственный профиль" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "У профайла отсутствует тип качества." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Невозможно найти тип качества {0} для текущей конфигурации." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "Высота печатаемого объёма была уменьшена до значения параметра \"Последовательность печати\", чтобы предотвратить касание портала за напечатанные детали." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Объём печати" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Размножение и размещение объектов" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Размещение объекта" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -786,34 +1184,34 @@ msgctxt "@action:button" msgid "Open Web Page" msgstr "Открыть веб страницу" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Загрузка принтеров..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Настройка сцены..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Загрузка интерфейса..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f мм" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Только один G-code файла может быть загружен в момент времени. Пропускаю импортирование {0}" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -843,12 +1241,12 @@ msgstr "X (Ширина)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "мм" @@ -866,22 +1264,22 @@ msgstr "Z (Высота)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Форма стола" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Начало координат в центре" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Нагреваемый стол" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Вариант G-кода" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -896,7 +1294,7 @@ msgstr "X минимум" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Расстояние от левого края головы до центра сопла. Используется для предотвращения столкновений с уже напечатанной частью и головой в режиме \"По отдельности\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -906,7 +1304,7 @@ msgstr "Y минимум" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Расстояние от переднего края головы до центра сопла. Используется для предотвращения столкновений с уже напечатанной частью и головой в режиме \"По отдельности\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -916,7 +1314,7 @@ msgstr "X максимум" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Расстояние от правого края головы до центра сопла. Используется для предотвращения столкновений с уже напечатанной частью и головой в режиме \"По отдельности\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -926,7 +1324,7 @@ msgstr "Y максимум" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Расстояние от заднего края головы до центра сопла. Используется для предотвращения столкновений с уже напечатанной частью и головой в режиме \"По отдельности\"." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -936,115 +1334,74 @@ msgstr "Высота портала" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Разница в высоте от кончика сопла до портала (по осям X и Y). Используется для предотвращения столкновений с уже напечатанной частью и головой в режиме \"По отдельности\"." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Количество экструдеров" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Номинальный диаметр материала, поддерживаемый принтером. Точный диаметр будет указан в материале и/или в профиле." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Диаметр материала" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Диаметр сопла" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Начало G-кода" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Команды в G-коде, которые будут выполнены при старте печати." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Конец G-кода" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Команды в G-коде, которые будут выполнены в конце печати." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Параметры сопла" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Смещение сопла по оси X" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Смещение сопла по оси Y" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "G-код старта экструдера" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "G-код завершения экструдера" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Настройки Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Сохранить" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Печатать на: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Температура экструдера: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Температура стола: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Печать" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1053,9 +1410,10 @@ msgstr "Журнал изменений" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1109,11 +1467,13 @@ msgid "Unknown error code: %1" msgstr "Неизвестный код ошибки: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Подключение к сетевому принтеру" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" @@ -1125,17 +1485,20 @@ msgstr "" "Укажите ваш принтер в списке ниже:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Добавить" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Правка" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1144,111 +1507,244 @@ msgid "Remove" msgstr "Удалить" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Обновить" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Если ваш принтер отсутствует в списке, обратитесь к руководству по решению проблем с сетевой печатью" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Тип" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Ultimaker 3 Расширенный" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Неизвестный" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Версия прошивки" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Адрес" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "Принтер по этому адресу ещё не отвечал." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Подключить" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Адрес принтера" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "Введите IP адрес принтера или его имя в сети." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Ok" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Подключение к принтеру" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Загрузка конфигурации принтера в Cura" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Активировать конфигурацию" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Данный принтер не настроен для управления группой подключенных принтеров Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Данный принтер управляет группой из {count} подключенных принтеров Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Печать через сеть" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 не настроен для управления группой подключенных принтеров Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Занят" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Завершено" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Подготовка" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Доступен" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Выполнено на:" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Очистите стол" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Подготовка к печати" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Не принимает задания на печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Открывает страницу с заданиями на печать в вашем браузере." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Просмотреть задания на печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "ГРУППА ПРИНТЕРОВ" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Задания на печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Печать" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Запланировано" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Ожидание изменения конфигурации" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Принтеры" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Просмотреть принтеры" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Конфигурация плагина SolidWorks" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Качество по-умолчанию экспортируемого STL:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Всегда спрашивать" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Всегда использовать хорошее качество" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Всегда использовать грубое качество" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1260,27 +1756,27 @@ msgstr "OK" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "Импортировать SolidWorks файл как STL..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Качество экспортируемого STL" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Качество" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Грубое" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "Хорошее" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1313,67 +1809,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Изменить активные скрипты пост-обработки" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Режим просмотра: Слои" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Цветовая схема" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Цвет материала" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Тип линии" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Режим совместимости" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Показать движения" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Показать поддержку" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Показать стенки" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Показать заполнение" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Показать только верхние слои" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "Показать 5 детализированных слоёв сверху" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Дно / крышка" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "Внутренняя стенка" @@ -1448,23 +1939,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Сглаживание" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Выберите параметры" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Выберите параметр для изменения этой модели" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Фильтр..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Показать всё" @@ -1601,33 +2092,54 @@ msgstr "Открыть" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Найти и обновить плагины" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Здесь вы можете найти список сторонних плагинов." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Обновление" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" +msgid "Installed" +msgstr "Установлено" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Лицензионное соглашение плагина" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" msgstr "" +" плагин содержит лицензию.\n" +"Вам требуется принять лицензию для установки данного плагина.\n" +"Вы согласны с написанным ниже?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Принять" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Отклонить" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 msgctxt "@title" msgid "Select Printer Upgrades" -msgstr "Выбор обновлённых частей" +msgstr "Выбор компонентов для обновления" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 msgctxt "@label" @@ -1797,71 +2309,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Всё в порядке! Проверка завершена." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Не подключен к принтеру" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Принтер не принимает команды" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "В режиме обслуживания. Пожалуйста, проверьте принтер" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Потеряно соединение с принтером" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Печать..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Приостановлен" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Подготовка..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Пожалуйста, удалите напечатанное" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Продолжить" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Пауза" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Прервать печать" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Прекращение печати" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Вы уверены, что желаете прервать печать?" @@ -1896,19 +2408,19 @@ msgid "Customized" msgstr "Свой" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Всегда спрашивать меня" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "Сбросить и никогда больше не спрашивать" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Сохранить и никогда больше не спрашивать" @@ -2026,7 +2538,7 @@ msgstr "Выбрать все" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Вычислено" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2049,7 +2561,7 @@ msgid "Unit" msgstr "Единица" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Общее" @@ -2064,223 +2576,223 @@ msgctxt "@label" msgid "Language:" msgstr "Язык:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Валюта:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Тема:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Для применения данных изменений вам потребуется перезапустить приложение." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Нарезать автоматически при изменении настроек." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Нарезать автоматически" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Поведение окна" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Подсвечивать красным области модели, требующие поддержек. Без поддержек эти области не будут напечатаны правильно." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Отобразить нависания" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Перемещать камеру так, чтобы выбранная модель помещалась в центр экрана" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Центрировать камеру на выбранном объекте" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Следует ли инвертировать стандартный способ увеличения в Cura?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Инвертировать направление увеличения камеры." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Увеличивать по мере движения мышкой?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Увеличивать по движению мышки" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Следует ли размещать модели на столе так, чтобы они больше не пересекались?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Удостовериться, что модели размещены рядом" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Следует ли опустить модели на стол?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Автоматически опускать модели на стол" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Показывать важное сообщение при чтении G-кода." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Важное сообщение при чтении G-кода" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Должен ли слой быть переведён в режим совместимости?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Просматривать слои в режиме совместимости (требуется перезапуск)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Открытие и сохранение файлов" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Масштабировать ли модели для размещения внутри печатаемого объёма, если они не влезают в него?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Масштабировать большие модели" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Модель может показаться очень маленькой, если её размерность задана в метрах, а не миллиметрах. Следует ли масштабировать такие модели?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Масштабировать очень маленькие модели" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Надо ли автоматически добавлять префикс, основанный на имени принтера, к названию задачи на печать?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Добавить префикс принтера к имени задачи" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Показывать сводку при сохранении файла проекта?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Показывать сводку при сохранении проекта" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Стандартное поведение при открытии файла проекта" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Стандартное поведение при открытии файла проекта: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Всегда спрашивать" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Всегда открывать как проект" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Всегда импортировать модели" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "При внесении изменений в профиль и переключении на другой, будет показан диалог, запрашивающий ваше решение о сохранении ваших изменений, или вы можете указать стандартное поведение и не показывать такой диалог." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Переопределение профиля" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Приватность" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Должна ли Cura проверять обновления программы при старте?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Проверять обновления при старте" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Можно ли отправлять анонимную информацию о вашей печати в Ultimaker? Следует отметить, что ни модели, ни IP адреса и никакая другая персональная информация не будет отправлена или сохранена." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "Отправлять (анонимно) информацию о печати" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Принтеры" @@ -2330,7 +2842,7 @@ msgid "Waiting for a printjob" msgstr "Ожидаем задание на печать" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Профили" @@ -2428,7 +2940,7 @@ msgid "Export Profile" msgstr "Экспортировать профиль" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Материалы" @@ -2460,12 +2972,12 @@ msgid "Import Material" msgstr "Импортировать материал" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" msgstr "Не могу импортировать материал %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" msgstr "Успешно импортированный материал %1" @@ -2476,17 +2988,17 @@ msgid "Export Material" msgstr "Экспортировать материал" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" msgstr "Не могу экспортировать материал %1: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" msgstr "Материал успешно экспортирован в %1" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Добавление принтера" @@ -2501,71 +3013,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Добавить принтер" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Внешняя стенка" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "Внутренние стенки" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Покрытие" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Заполнение" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Заполнение поддержек" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Связующий слой поддержек" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Поддержки" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Перемещение" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Откаты" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Другое" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00ч 00мин" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 м / ~ %2 гр / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 м / ~ %2 г" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2633,7 +3080,7 @@ msgstr "Формат обмена данными" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Вспомогательная библиотека для научных вычислений" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2675,32 +3122,48 @@ msgctxt "@label" msgid "SVG icons" msgstr "Иконки SVG" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Профиль:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "" +"Значения некоторых параметров отличаются от значений профиля.\n" +"\n" +"Нажмите для открытия менеджера профилей." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Поиск..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Скопировать значение для всех экструдеров" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Спрятать этот параметр" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Не показывать этот параметр" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Оставить этот параметр видимым" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Настроить видимость параметров..." @@ -2758,12 +3221,12 @@ msgstr "" "\n" "Щёлкните для восстановления вычисленного значения." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Настройка печати" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" @@ -2772,12 +3235,37 @@ msgstr "" "Настройка принтера отключена\n" "G-code файлы нельзя изменять" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00ч 00мин" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Информация о времени" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Время печати" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1м / ~ %2гр / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1м / ~ %2гр" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Рекомендованные параметры печати

Печатайте с рекомендованными параметрами для выбранных принтера, материала и качества." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Свои параметры печати

Печатайте с полным контролем над каждой особенностью процесса слайсинга." @@ -2795,7 +3283,7 @@ msgstr "Вид" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Автоматически: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2829,81 +3317,87 @@ msgid "No printer connected" msgstr "Принтер не подключен" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Голова" +msgid "Extruder" +msgstr "Экструдер" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Целевая температура сопла. Сопло будет нагрето или остужено до указанной температуры. Если значение равно 0, то нагрев будет отключен." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Текущая температура экструдера." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Цвет материала в данном экструдере." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Материал в данном экструдере." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Сопло, вставленное в данный экструдер." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Стол" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Целевая температура горячего стола. Стол будет нагреваться и охлаждаться, оставаясь на этой температуре. Если установлена в 0, значит нагрев стола отключен." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Текущая температура горячего стола." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Температура преднагрева горячего стола." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "Отмена" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Преднагрев" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Нагрев горячего стола перед печатью. Вы можете продолжать настройки вашей печати, пока стол нагревается, и вам не понадобится ждать нагрева стола для старта печати." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Идёт печать" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "Имя задачи" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Время печати" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Осталось примерно" @@ -3097,53 +3591,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Видимость параметров…" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Пожалуйста, загрузите 3D модель" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Готов к нарезке" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Нарезка на слои..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "Готов к %1" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Невозможно нарезать" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Нарезка недоступна" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Подготовка" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "Отмена" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Выберите активное целевое устройство" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Открыть файл(ы)" @@ -3235,42 +3729,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "Справка" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Открыть файл" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Режим просмотра" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Параметры" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Новый проект" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Вы действительно желаете начать новый проект? Это действие очистит область печати и сбросит все несохранённые настройки." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Установка плагина" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Открыть файл(ы)" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Среди выбранных файлов мы нашли несколько файлов с G-кодом. Вы можете открыть только один файл за раз. Измените свой выбор, пожалуйста." @@ -3295,102 +3784,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Больше не показывать сводку по проекту" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Сохранить" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Подготовка" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "Монитор" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Высота слоя" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Скорость печати" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Медленнее" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Быстрее" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Заполнение" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "0%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Пустое заполнение сделает вашу модель полой и хрупкой." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "20%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Слабое (20%) заполнение сделает вашу модель менее хрупкой." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "50%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Плотное (50%) заполнение придаст вашей модели прочность выше среднего." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "100%" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Сплошное (100%) заполнение сделает вашу модель крепкой." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Постепенное" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Постепенное заполнение будет постепенно увеличивать объём заполнения по направлению вверх." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Постепенное" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Генерация поддержек" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Генерация структур для поддержки нависающих частей модели. Без этих структур такие части будут складываться во время печати." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Экструдер поддержек" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Выбирает какой экструдер следует использовать для поддержек. Будут созданы поддерживающие структуры под моделью для предотвращения проседания краёв или печати в воздухе." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Тип прилипания к столу" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Разрешает печать каймы или подложки. Это добавляет плоскую область вокруг или под вашим объектом, которую легко удалить после печати." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Требуется помощь в улучшении вашей печати?
Обратитесь к Руководству Ultimaker по решению проблем" @@ -3399,9 +3873,9 @@ msgstr "Требуется помощь в улучшении вашей печ msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Печатать выбранную модель с %1" +msgstr[1] "Печатать выбранные модели с %1" +msgstr[2] "Печатать выбранных моделей с %1" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3428,372 +3902,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Журнал движка" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Материал" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Проверить совместимость материала" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Нажмите для проверки совместимости материала на Ultimaker.com." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Профиль:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Значения некоторых параметров отличаются от значений профиля.\n" -"\n" -"Нажмите для открытия менеджера профилей." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Предоставляет возможность изменения параметров принтера (такие как рабочий объём, диаметр сопла и так далее)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Параметры принтера действие" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Предоставляет рентгеновский вид." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Просмотр в рентгене" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "Предоставляет поддержку для чтения X3D файлов." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "Чтение X3D" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "Записывает G-Code в файл." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "Запись G-Code" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Запись содержимого всех настроек в виде HTML файла." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Режим бога" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Принять G-code и отправить его через WiFi на Doodle3D WiFi-Box." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Показывает изменения со времени последней отмеченной версии." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Журнал изменений" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Создаёт профиль со стандартными настройками." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Нормализация профиля" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "Принимает G-Code и отправляет его на принтер. Плагин также может обновлять прошивку." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "Печать через USB" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Предоставляет поддержку для подключения и записи на внешний носитель." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Плагин для работы с внешним носителем" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Управляет сетевыми соединениями с принтерами Ultimaker 3" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "Соединение с сетью UM3" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "Соединение с сетью UM3 (кластер)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Проверяет наличие обновлений ПО." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Проверка обновлений" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Предоставляет вам возможность открывать файлы через SolidWorks. Файлы будут преобразовываться и загружаться в Cura" #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "Интеграция с SolidWorks" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Расширение, которое позволяет пользователю создавать скрипты для пост обработки" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Пост обработка" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Автоматически сохраняет настройки, принтеры и профили после внесения изменений." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Автосохранение" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Отправляет анонимную информацию о нарезке моделей. Может быть отключено через настройки." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Информация о нарезке модели" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "Предоставляет возможности по чтению и записи профилей материалов в виде XML." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Профили материалов" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Предоставляет поддержку для импортирования профилей из устаревших версий Cura." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Чтение устаревших профилей Cura" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "Предоставляет поддержку для импортирования профилей из G-Code файлов." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "Чтение профиля из G-Code" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Предоставляет послойный просмотр." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Просмотр слоёв" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Обновляет конфигурацию Cura 2.5 до Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" +msgstr "Обновление версии с 2.5 до 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Обновляет конфигурацию Cura 2.7 до Cura 3.0." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" msgstr "" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Обновляет конфигурацию Cura 2.6 до Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "Обновление версии с 2.6 до 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Обновляет настройки Cura 2.1 до Cura 2.2." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "Обновление версии 2.1 до 2.2" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Обновляет конфигурации Cura 2.2 до Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "Обновление версии 2.2 до 2.4" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "Обеспечивает возможность генерировать печатаемую геометрию из файлов двухмерных изображений." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Чтение изображений" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "Предоставляет интерфейс к движку CuraEngine." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "Движок CuraEngine" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Предоставляет параметры для каждой модели." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Инструмент для настройки каждой модели" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "Предоставляет поддержку для чтения 3MF файлов." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "Чтение 3MF" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Поиск, управление и установка новых плагинов." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Браузер плагинов" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Предоставляет просмотр твёрдого тела." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Обзор" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "Позволяет загружать и отображать файлы G-code." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "Чтение G-code" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Предоставляет поддержку для экспорта профилей Cura." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Запись профиля Cura" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "Предоставляет возможность записи 3MF файлов." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "Запись 3MF" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Предоставляет дополнительные возможности для принтеров Ultimaker (такие как мастер выравнивания стола, выбора обновления и так далее)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Действия с принтерами Ultimaker" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Предоставляет поддержку для импорта профилей Cura." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Чтение профиля Cura" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "Рентген" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "Принимает G-Code и отправляет его через WiFi на Doodle3D WiFi-Box." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Печать Doodle3D" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Печать через Doodle3D" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Печать через " + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Активировать сканеры..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "X3G файл" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Сохранение на внешний носитель {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "Не могу сохранить {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "Запомните, пожалуйста, что вы должны вручную открыть заново файл SolidWorks файл! Перезагрузка моделей не поможет!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Слои" + +#~ msgid "Browse plugins" +#~ msgstr "Просмотр плагинов" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Твёрдое тело" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Файл {0} уже существует. Вы желаете его перезаписать?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Невозможно экспортировать профиль в {0}: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Невозможно экспортировать профиль в {0}: Плагин записи уведомил об ошибке." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Экспортирование профиля в {0}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "Невозможно импортировать профиль из {0}: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Настройки Doodle3D" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Печатать на: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Температура экструдера: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Температура стола: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Режим просмотра: Слои" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Не могу импортировать материал %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Успешно импортированный материал %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Не могу экспортировать материал %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Материал успешно экспортирован в %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 м / ~ %2 гр / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 м / ~ %2 г" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Голова" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Режим просмотра" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Печать" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Пустое заполнение сделает вашу модель полой и хрупкой." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Слабое (20%) заполнение сделает вашу модель менее хрупкой." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Плотное (50%) заполнение придаст вашей модели прочность выше среднего." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Сплошное (100%) заполнение сделает вашу модель крепкой." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Постепенное" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "Предоставляет возможность записи X3G файлов" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "Запись X3G" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/ru/fdmextruder.def.json.po b/resources/i18n/ru_RU/fdmextruder.def.json.po similarity index 99% rename from resources/i18n/ru/fdmextruder.def.json.po rename to resources/i18n/ru_RU/fdmextruder.def.json.po index 3894f5cdc0..7c5abae3bc 100644 --- a/resources/i18n/ru/fdmextruder.def.json.po +++ b/resources/i18n/ru_RU/fdmextruder.def.json.po @@ -2,22 +2,20 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-01-08 04:33+0300\n" +"PO-Revision-Date: 2017-08-09 19:26+0300\n" "Last-Translator: Ruslan Popov \n" "Language-Team: Ruslan Popov\n" -"Language: Russian\n" +"Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ru\n" -"Country-Code: RU\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: fdmextruder.def.json @@ -43,12 +41,12 @@ msgstr "Экструдер, который используется для пе #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Идентификатор сопла" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Идентификатор сопла для экструдера, например \"AA 0.4\" и \"BB 0.8\"." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/ru/fdmprinter.def.json.po b/resources/i18n/ru_RU/fdmprinter.def.json.po similarity index 88% rename from resources/i18n/ru/fdmprinter.def.json.po rename to resources/i18n/ru_RU/fdmprinter.def.json.po index 540035b941..d47ace8f7d 100755 --- a/resources/i18n/ru/fdmprinter.def.json.po +++ b/resources/i18n/ru_RU/fdmprinter.def.json.po @@ -2,22 +2,20 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-05 08:51+0300\n" +"PO-Revision-Date: 2017-09-23 11:19+0300\n" "Last-Translator: Ruslan Popov \n" "Language-Team: Ruslan Popov\n" -"Language: ru\n" +"Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: ru\n" -"Country-Code: RU\n" -"X-Generator: Poedit 2.0\n" +"X-Generator: Poedit 2.0.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: fdmprinter.def.json @@ -43,7 +41,7 @@ msgstr "Название модели вашего 3D принтера." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Показать варианты принтера" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -91,7 +89,7 @@ msgstr "Идентификатор материала, устанавливае #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Ожидать пока прогреется стол" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -101,7 +99,7 @@ msgstr "Следует ли добавлять команду ожидания #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Ожидать пока прогреется голова" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -111,7 +109,7 @@ msgstr "Следует ли добавлять команду ожидания #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Использовать температуру из материала" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -121,7 +119,7 @@ msgstr "Следует ли добавлять команды управлени #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Добавлять температуру стола" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -131,7 +129,7 @@ msgstr "Следует ли добавлять команды управлени #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Ширина принтера" #: fdmprinter.def.json msgctxt "machine_width description" @@ -141,7 +139,7 @@ msgstr "Ширина (по оси X) области печати." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Глубина принтера" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -151,7 +149,7 @@ msgstr "Ширина (по оси Y) области печати." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Форма стола" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -171,7 +169,7 @@ msgstr "Эллиптическая" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Высота принтера" #: fdmprinter.def.json msgctxt "machine_height description" @@ -181,7 +179,7 @@ msgstr "Ширина (по оси Z) области печати." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Имеет подогреваемый стол" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -191,7 +189,7 @@ msgstr "Имеет ли принтер подогреваемый стол." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Начало координат в центре" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -311,17 +309,17 @@ msgstr "Генерируемый вариант G-кода." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volumetric)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -406,12 +404,12 @@ msgstr "Высота между кончиком сопла и портальн #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Идентификатор сопла" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Идентификатор сопла для экструдера, например \"AA 0.4\" и \"BB 0.8\"." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -656,12 +654,12 @@ msgstr "Ширина одной линии стенки для всех лини #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Ширина линии крышки" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Ширина одной линии крышки." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -746,12 +744,12 @@ msgstr "Ширина отдельной линии черновой башни." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "Ширина линии первого слоя" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "Множитель для ширины линии первого слоя. Увеличение значения улучшает прилипание к столу." #: fdmprinter.def.json msgctxt "shell label" @@ -763,35 +761,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Ограждение" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Экструдер внешних стенок" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Этот экструдер используется для печати внешних стенок. Используется при наличии нескольких экструдеров." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "Печать внутренних стенок" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "Этот экструдер используется для печати внутренних стенок. Используется при наличии нескольких экструдеров." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -801,7 +789,7 @@ msgstr "Толщина стенки" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Толщина внешних стенок в горизонтальном направлении. Это значение, разделённое на ширину линии стенки, определяет количество стенок." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -826,67 +814,67 @@ msgstr "Расстояние перемещения, добавленное по #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Экструдер для печати крышки" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "Экструдер, используемый для печати верхних оболочек. Используется при наличии нескольких экструдеров." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Слои верхней оболочки" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "Количество верхних слоёв оболочки. Обычно достаточно одного слоя для получения верхних поверхностей в хорошем качестве." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Шаблон верхней оболочки" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "Шаблон, используемый для верхних слоёв оболочки." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Линии" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Концентрические" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Зигзаг" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Направление линий верхней оболочки" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Список направлений линии при печати слоёв дна/крышки линиями или зигзагом. Элементы списка используются последовательно по мере печати слоёв и когда конец списка будет достигнут, он начнётся сначала. Элементы списка отделяются запятыми и сам список заключён в квадратные скобки. По умолчанию, он пустой, что означает использование стандартных углов (45 и 135 градусов)." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Экструдер дна/крышки" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Экструдер, используемый для печати верхней и нижней оболочек. Используется при наличии нескольких экструдеров." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1081,12 +1069,12 @@ msgstr "Везде" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "Печать тонких стенок" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Печать частей модели, которые по горизонтали тоньше диаметра сопла." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1101,12 +1089,12 @@ msgstr "Сумма смещения применяемая ко всем пол #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "Горизонтальное расширение первого слоя" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "Сумма смещений, применяемая ко всем полигонам первого слоя. Отрицательное значение может компенсировать \"хлюпанье\" первого слоя, известное как \"слоновая нога\"." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1133,6 +1121,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Случайно" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "Острейший угол" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1153,15 +1146,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Y координата позиции вблизи которой следует начинать путь на каждом слое." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Настройки угла шва" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Управляет влиянием углов на контуре модели на позицию шва. Нет означает отсутствие влияния. Спрятать шов означает по возможности перенести шов внутрь угла. Показать шов означает по возможности перенести шов наружу. Спрятать или показать означает выбор по ситуации." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Нет" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Спрятать шов" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Показать шов" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Спрятать или показать" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Привязка Z шва" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Когда включено, координаты Z шва привязаны к центру каждой части. Когда отключено, координаты определяются от абсолютной позиции на столе." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1173,6 +1196,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Когда модель имеет небольшие вертикальные зазоры, около 5% дополнительного времени будет потрачено на вычисления верхних и нижних оболочек в этих узких пространствах. В этом случае, отключите данный параметр." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Количество внешних дополнительных оболочек" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Заменяет внешнюю часть шаблона крышки/дна рядом концентрических линий. Использование одной или двух линий улучшает мосты, которые печатаются поверх материала заполнения." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1186,12 +1219,12 @@ msgstr "Заполнение" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Экструдер для заполнения" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Экструдер, используемый для печати заполнения. Используется при наличии нескольких экструдеров." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1220,8 +1253,8 @@ msgstr "Шаблон заполнения" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Шаблон для материала заполнения при печати. Заполнение линиями и зигзагом меняет направление при смене слоя, уменьшая стоимость материала. Сетчатый, треугольный и концентрический шаблоны полностью печатаются на каждом слое. Кубическое и тетраэдральное заполнение меняется на каждом слое для равного распределения прочности по каждому направлению." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Шаблон заполнения при печати. Заполнение линиями или зиг-загом меняет направление на соседних слоях, уменьшая стоимость материала. Сетчатый, треугольный, кубический, восьмигранный и концентрический шаблоны полностью печатаются на каждом слое. Кубическое, четверть кубическое и восьмигранное заполнение меняется на каждом слое для получения более равного распределения по каждому направлению." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1250,8 +1283,13 @@ msgstr "Динамический куб" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Тетраэдр" +msgid "Octet" +msgstr "Восьмигранник" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Четверть куба" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1268,6 +1306,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Зигзаг" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Крестовое" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Крестовое 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Соединять линии заполнения" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "Соединять концы линий заполнения где они соприкасаются со внутренней стенкой, используя линии, которые продолжают форму внутренней стенки. Активация этого параметра поможет крепче связывать заполнение со стенками и уменьшить влияние на качество заполнения вертикальных поверхностей. Отключение этого параметра уменьшает объём используемого материала." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1316,7 +1374,7 @@ msgstr "Процент перекрытия оболочек" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Объём перекрытия между оболочкой и стенами в виде процента от ширины линии. Небольшое перекрытие позволяют стенам нормально соединяться с оболочкой. Это процент от средней ширины линии оболочки и внутренней стенки." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1389,34 +1447,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Не генерировать области заполнения меньше чем указано здесь (вместо этого использовать оболочку)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Расширять оболочку в заполнение" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Ширина удаляемой оболочки" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Расширять области оболочки на верхних и/или нижних обшивках плоских поверхностях. По умолчанию, обшивки завершаются под линиями стенки, которые окружают заполнение, но это может приводить к отверстиям, появляющимся при малой плотности заполнения. Данный параметр расширяет обшивку позади линий стенки таким образом, что заполнение следующего слоя располагается на обшивке." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Наибольшая ширина областей оболочки, которые будут удалены. Каждая область оболочки, которая меньше указанного значения, будет удалена. Это может помочь с сокращением затрат времени и материала при печати верхних/нижних оболочек наклонных поверхностей модели." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Расширять верхнюю оболочку в заполнение" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Ширина удаляемой оболочки сверху" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Расширять области верхней оболочки (над ними будет воздух) так, что они поддерживают заполнение над ними." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Наибольшая ширина областей оболочки, которые будут удалены. Каждая область оболочки, которая меньше указанного значения, будет удалена. Это может помочь с сокращением затрат времени и материала при печати верхних оболочек наклонных поверхностей модели." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Расширять нижнюю оболочку в заполнение" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Ширина удаляемой оболочки снизу" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Расширять области нижней оболочки (под ними будет воздух) так, что они сцепляются с слоями заполнения сверху и снизу." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Наибольшая ширина областей оболочки, которые будут удалены. Каждая область оболочки, которая меньше указанного значения, будет удалена. Это может помочь с сокращением затрат времени и материала при печати нижних оболочек наклонных поверхностей модели." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1425,8 +1483,28 @@ msgstr "Дистанция расширения оболочки" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Дистанция, на которую расширяется оболочка внутри заполнения. По умолчанию, дистанция достаточна для связывания промежутков между линиями заполнения и предотвращает появление отверстий в оболочке, где она встречается со стенкой когда плотность заполнения низкая. Меньшая дистанция чаще всего будет достаточной." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Расстояние на которое оболочки внедряются в заполнение. Большие значения лучше связывают оболочку с шаблоном заполнения и стенками. Меньшие значения сохраняют используемый материал." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Дистанция расширения оболочки сверху" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Расстояние на которое верхние оболочки входят в заполнение. Большие значения лучше связывают оболочку с шаблоном заполнения и стенками. Меньшие значения сохраняют используемый материал." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Расстояние расширения оболочки снизу" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Расстояние на которое нижние оболочки входят в заполнение. Большие значения лучше связывают оболочку с шаблоном заполнения и стенками. Меньшие значения сохраняют используемый материал." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1791,12 +1869,12 @@ msgstr "Скорость, на которой происходит печать #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Скорость верхней оболочки" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Скорость, на которой печатаются слои верхней оболочки." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1808,16 +1886,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Скорость, на которой печатаются слои крышки/дна." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2031,12 +2099,12 @@ msgstr "Ускорение, с которым происходит печать #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Ускорение верхней оболочки" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Ускорение, с которым печатаются слои верхней оболочки." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2048,16 +2116,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Ускорение, с которым печатаются слои крышки/дна." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2231,12 +2289,12 @@ msgstr "Изменение максимальной мгновенной ско #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Рывок верхней оболочки" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Изменение максимальной мгновенной скорости, с которой печатаются слои верхней оболочки." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2248,16 +2306,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Изменение максимальной мгновенной скорости, с которой печатаются верхние и нижние слои." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2376,7 +2424,7 @@ msgstr "Перемещение" #: fdmprinter.def.json msgctxt "travel description" msgid "travel" -msgstr "Перемещение" +msgstr "перемещение" #: fdmprinter.def.json msgctxt "retraction_combing label" @@ -2656,7 +2704,7 @@ msgstr "Этот экструдер используется для печати #: fdmprinter.def.json msgctxt "support_infill_extruder_nr label" msgid "Support Infill Extruder" -msgstr "Экструдер заполнения поддержек. Используется при наличии нескольких экструдеров." +msgstr "Экструдер заполнения поддержек" #: fdmprinter.def.json msgctxt "support_infill_extruder_nr description" @@ -2773,6 +2821,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Зигзаг" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Крест" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2785,23 +2838,33 @@ msgstr "Соединяет зигзаги. Это увеличивает про #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Разбить поддержки на части" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Пропускать некоторые соединения в поддержках для облегчения их последующего удаления. Этот параметр влияет на зиг-заг шаблон заполнения." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Размер части поддержек" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Пропускать соединение между линиями поддержки каждые N миллиметров для облегчения последующего удаления поддержек." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Количество частей линий поддержки" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Пропускать одну линию на каждые N соединительных линий, облегчая последующее удаление поддержек." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2891,7 +2954,7 @@ msgstr "Минимальный X/Y зазор поддержки" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang description" msgid "Distance of the support structure from the overhang in the X/Y directions. " -msgstr "Зазор между структурами поддержек и нависанием по осям X/Y." +msgstr "Зазор между структурами поддержек и нависанием по осям X/Y. " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height label" @@ -2936,32 +2999,32 @@ msgstr "Величина смещения, применяемая ко всем #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Толщина слоя заполнения поддержек" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Толщина слоя для материала заполнения поддержек. Это значение должно быть всегда кратно высоте слоя, в противном случае оно будет округлено." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Степень заполнения поддержек" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Количество раз, на которое на половину можно уменьшать плотность заполнения поддержек при прохоже вглубь структуры от поверхности. Области ближе к оболочке имеют большую плотность, вплоть до значения \"Плотность заполнения поддержек\"." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Высота шага изменения заполнения поддержек" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Высота заполнения поддержек, по достижению которой происходит снижение плотности." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3026,7 +3089,7 @@ msgstr "Толщина низа поддержки. Управляет коли #: fdmprinter.def.json msgctxt "support_interface_skip_height label" msgid "Support Interface Resolution" -msgstr "Разрешение связующего слоя поддержек." +msgstr "Разрешение связующего слоя поддержек" #: fdmprinter.def.json msgctxt "support_interface_skip_height description" @@ -3387,6 +3450,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Печатать кайму только на внешней стороне модели. Это сокращает объём каймы, которую вам потребуется удалить в дальнейшем, и не снижает качество прилипания к столу." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "Смещение первого Z слоя" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "Экструдер смещается от стола на указанное значение при печати первого слоя. Значение может быть положительным (выше) или отрицательным (ниже). Некоторые типы материала связываются со столом лучше, когда экструдер чуть приподнят над столом." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Компенсация Z смещения" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Если не ноль, то Z смещение уменьшается до 0 на указанном слое. Значение 0 указывает, что Z смещение остаётся постоянным на всех слоях печати." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3397,6 +3480,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Если подложка включена, это дополнительное поле вокруг модели, которая также имеет подложку. Увеличение этого значения создаст более крепкую поддержку, используя больше материала и оставляя меньше свободной области для печати." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Сглаживание подложки" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Данный параметр управляет тем, сколько внутренних углов в контуре будет сглажено. Внутренние углы сглаживаются полукругами с радиусом равным указанному значению. Данный параметр также убирает отверстия в контуре подложки, которые меньше получающегося круга." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3780,12 +3873,12 @@ msgstr "После смены экструдера убираем на перв #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "Объём очистки черновой башни" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "Объём материала, который будет выдавлен при очистке на черновой башне. Очистка полезна для компенсации недостатка материала из-за его вытекания при простое сопла." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4072,6 +4165,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Сглаживает спиральные контуры для уменьшения видимости шва по оси Z (такой шов должен быть едва виден при печати, но по-прежнему виден при послойном просмотре). Следует отметить, что сглаживание ведёт к размыванию мелких деталей поверхности." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Отностительная экструзия" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Использовать относительную, а не абсолютную экструзию. Использование относительной экструзии упрощает пост-обработку G-code. Однако, она не поддерживается всеми принтерами и может приводить к некоторой неточности при выдавливании материала. Независимо от этого параметра, режим экструзии будет всегда абсолютным перед выводом любого G-code скрипта." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4082,6 +4185,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "экспериментальное!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Оптимазация порядка печати стенок" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Оптимизирует порядок, в котором печатаются стенки для уменьшения количества откатов и перемещений. Большинство моделей будут распечатываться быстрее, но не все. Сравнивайте печать с оптимизацией и без." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4192,16 +4305,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Скорость, с которой производятся движения во время наката, относительно скорости печати. Рекомендуется использовать значение чуть меньше 100%, так как во время наката давление в боудене снижается." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Количество внешних дополнительных оболочек" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Заменяет внешнюю часть шаблона крышки/дна рядом концентрических линий. Использование одной или двух линий улучшает мосты, которые печатаются поверх материала заполнения." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4212,6 +4315,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Изменить направление, в котором печатаются слои крышки/дна. Обычно, они печатаются по диагонали. Данный параметр добавляет направления X-только и Y-только." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Размер карманов креста 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Размер карманов при печати шаблоном крест 3D по высоте, когда шаблон касается сам себя." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Смена карманов креста 3D" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Применяется только к карманам на половине шаблона креста 3D и меняет расположение карманов по высоте, когда шаблон касается сам себя." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4225,12 +4348,12 @@ msgstr "Печатает заполнение так часто, что фила #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Шаг спагетти заполнения" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Следует ли пошагово печатать спагетти заполнение или печатать материалом заполнения в конце печати." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4275,12 +4398,12 @@ msgstr "Управляет плотностью спагетти заполне #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Дополнительный объём спагетти заполнения" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Период исправления для управления общим объёмом выдавленного материала при спагетти заполнении." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4624,62 +4747,102 @@ msgstr "Зазор между соплом и горизонтально нис #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Разрешить разглаживание" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Проходить по верхней оболочке ещё раз, но без выдавливания материала. Это приводит к плавлению пластика, что создаёт более гладкую поверхность." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Самый высокий слой разглаживания" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Выполняет разглаживание только на самом последнем слое модели. Экономит время, когда нижние слои не требуют сглаживания поверхности." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Шаблон разглаживания" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Шаблон, который будет использоваться для разглаживания верхней оболочки." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Концентрический" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Зигзаг" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Расстояние между линиями разглаживания" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Расстояние между линиями разглаживания." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Поток разглаживания" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Объём материала, относительно от обычной линии, который будет выдавлен в процессе разглаживания. Наличие в сопле наличие материала помогает заполнять щели на верхней оболочке, но слишком большое значение приводит к излишнему выдавливанию материала и ухудшает качество оболочки." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Границы разглаживания" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Расстояние от краёв модели. Разглаживание от края до края может выразится в загибании краёв при печати." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Скорость разглаживания" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Скорость, на которой голова проходит над верхней оболочкой." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Ускорение разглаживания" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "Ускорение, с которым производится разглаживание." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Рывок разглаживания" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Изменение максимальной мгновенной скорости, с которой выполняется разглаживание." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4741,6 +4904,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Матрица преобразования, применяемая к модели при её загрузки из файла." +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Экструдер стенок" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Этот экструдер используется для печати стенок. Используется при наличии нескольких экструдеров." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Шаблон для материала заполнения при печати. Заполнение линиями и зигзагом меняет направление при смене слоя, уменьшая стоимость материала. Сетчатый, треугольный и концентрический шаблоны полностью печатаются на каждом слое. Кубическое и тетраэдральное заполнение меняется на каждом слое для равного распределения прочности по каждому направлению." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Тетраэдр" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Расширять оболочку в заполнение" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Расширять области оболочки на верхних и/или нижних обшивках плоских поверхностях. По умолчанию, обшивки завершаются под линиями стенки, которые окружают заполнение, но это может приводить к отверстиям, появляющимся при малой плотности заполнения. Данный параметр расширяет обшивку позади линий стенки таким образом, что заполнение следующего слоя располагается на обшивке." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Расширять верхнюю оболочку в заполнение" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Расширять области верхней оболочки (над ними будет воздух) так, что они поддерживают заполнение над ними." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Расширять нижнюю оболочку в заполнение" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Расширять области нижней оболочки (под ними будет воздух) так, что они сцепляются с слоями заполнения сверху и снизу." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Дистанция, на которую расширяется оболочка внутри заполнения. По умолчанию, дистанция достаточна для связывания промежутков между линиями заполнения и предотвращает появление отверстий в оболочке, где она встречается со стенкой когда плотность заполнения низкая. Меньшая дистанция чаще всего будет достаточной." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Пропускать несколько соединений при зигзаге." + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Пропускать несколько соединений при зигзаге, чтобы облегчить последующее удаление структуры поддержек." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Количество пропускаемых соединений при зигзаге" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Пропускать одну в каждой N-ой линии соединений для облегчения последующего удаления структуры поддержек." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Показать варианты принтера" diff --git a/resources/i18n/tr/cura.po b/resources/i18n/tr_TR/cura.po similarity index 72% rename from resources/i18n/tr/cura.po rename to resources/i18n/tr_TR/cura.po index 60cdb01ae5..129c2bbe6b 100644 --- a/resources/i18n/tr/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -2,31 +2,89 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Turkish\n" -"Language: Turkish\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: tr\n" -"Country-Code: TR\n" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "Yazdırma durduruldu" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "Tıkalı" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "Eylem gerekli" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "Baskı başlatılamıyor" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Bu yazıcı, Ultimaker 3 yazıcı grubunu barındırmak için ayarlı değildir." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Şu tarihlerde bitirir: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Bu yazıcı, %1 Ultimaker 3 yazıcı grubunun ana makinesidir." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name}, '{job_name}' yazdırmayı tamamladı." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Baskı tamamlandı" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Eklentiler" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Eklentilere göz at..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Yüklü eklentiler..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" msgstr "Makine Ayarları" #: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 msgctxt "@item:inlistbox" -msgid "X-Ray" -msgstr "X-Ray" +msgid "X-Ray view" +msgstr "Röntgen Görüntüsü" #: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 msgctxt "@item:inlistbox" @@ -38,40 +96,69 @@ msgctxt "@item:inlistbox" msgid "GCode File" msgstr "GCode Dosyası" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 -msgctxt "@label" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 -msgctxt "@info:whatsthis" -msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." -msgstr "G-Code’u kabul eder ve WiFi üzerinden Doodle3D WiFi-Box'a gönderir." - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 -msgctxt "@item:inmenu" -msgid "Doodle3D printing" -msgstr "Doodle3D yazdırma" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 msgctxt "@action:button" -msgid "Print with Doodle3D" -msgstr "" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box ile yazdır" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box ile yazdır" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "Doodle3D Connect’e bağlanıyor" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "İptal et" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "Doodle3D Connect’e veri gönderiliyor" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "Doodle3D Connect’e veri gönderilemiyor. Hala etkin olan başka bir iş var mı?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "Doodle3D Connect üzerinde veri depolanıyor" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "Doodle3D Connect’e dosya gönderildi" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "Connect’i aç.." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 msgctxt "@info:tooltip" -msgid "Print with " -msgstr "Şununla yazdır:" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 -msgctxt "@title:menu" -msgid "Doodle3D" -msgstr "Doodle3D" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 -msgctxt "@item:inlistbox" -msgid "Enable Scan devices..." -msgstr "Tarama aygıtlarını etkinleştir..." +msgid "Open the Doodle3D Connect web interface" +msgstr "Doodle3D Connect web arayüzünü aç" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 msgctxt "@item:inmenu" @@ -113,16 +200,36 @@ msgctxt "@info:status" msgid "Unable to start a new job because the printer is busy or not connected." msgstr "Yazıcı meşgul veya bağlı olmadığı için yeni bir işlem başlatılamıyor." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "Yazdırma Ayrıntıları" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "This printer does not support USB printing because it uses UltiGCode flavor." msgstr "Yazıcı, UltiGCode türü kullandığı için USB yazdırmayı desteklemiyor." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB Yazdırma" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 msgctxt "@info:status" msgid "Unable to start a new job because the printer does not support usb printing." msgstr "Yazıcı USB ile yazdırmayı desteklemediği için yeni bir işlem başlatılamıyor." +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "Uyarı" + #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 msgctxt "@info" msgid "Unable to update firmware because there are no printers connected." @@ -134,10 +241,10 @@ msgctxt "@info" msgid "Could not find firmware required for the printer at %s." msgstr "%s’te yazıcı için gerekli aygıt yazılım bulunamadı." -#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:14 -msgctxt "X3G Writer File Description" -msgid "X3G File" -msgstr "X3G Dosyası" +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "Yazıcı Bellenimi" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 msgctxt "@action:button Preceded by 'Ready to'." @@ -152,47 +259,79 @@ msgstr "Çıkarılabilir Sürücüye Kaydediliyor {0}" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 #, python-brace-format -msgctxt "@info:progress" +msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" -msgstr "Çıkarılabilir Sürücüye Kaydediliyor {0}" +msgstr "Çıkarılabilir Sürücü {0} Üzerine Kaydediliyor " + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "Kaydediliyor" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not save to {0}: {1}" -msgstr "{0}na kaydedilemedi: {1}" +msgstr "{0} dosyasına kaydedilemedi: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 #, python-brace-format -msgctxt "@info:status" -msgid "Saved to Removable Drive {0} as {1}" -msgstr "Çıkarılabilir Sürücüye {0}, {1} olarak kaydedildi" +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "{device} üzerine yazmaya çalışırken dosya adı bulunamadı." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -msgctxt "@action:button" -msgid "Eject" -msgstr "Çıkar" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 -#, python-brace-format -msgctxt "@action" -msgid "Eject removable device {0}" -msgstr "Çıkarılabilir aygıtı çıkar {0}" - -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 #, python-brace-format msgctxt "@info:status" msgid "Could not save to removable drive {0}: {1}" msgstr "Çıkarılabilir aygıta {0} kaydedilemedi: {1}" -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "Hata" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Çıkarılabilir Sürücüye {0}, {1} olarak kaydedildi" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "Dosya Kaydedildi" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "Çıkar" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Çıkarılabilir aygıtı çıkar {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 #, python-brace-format msgctxt "@info:status" msgid "Ejected {0}. You can now safely remove the drive." msgstr "Çıkarıldı {0}. Şimdi sürücüyü güvenle kaldırabilirsiniz." -#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "Donanımı Güvenli Bir Şekilde Kaldırın" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 #, python-brace-format msgctxt "@info:status" msgid "Failed to eject {0}. Another program may be using the drive." @@ -203,247 +342,374 @@ msgctxt "@item:intext" msgid "Removable Drive" msgstr "Çıkarılabilir Sürücü" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 msgctxt "@action:button Preceded by 'Ready to'." msgid "Print over network" msgstr "Ağ üzerinden yazdır" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 msgctxt "@properties:tooltip" msgid "Print over network" msgstr "Ağ üzerinden yazdır" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" msgstr "İstenen yazıcıya erişim. Lütfen yazıcı isteğini onaylayın" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "Bağlantı durumu" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 msgctxt "@info:status" msgid "" msgstr "" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "Bağlantı Durumu" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@action:button" msgid "Retry" msgstr "Yeniden dene" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 msgctxt "@info:tooltip" msgid "Re-send the access request" msgstr "Erişim talebini yeniden gönder" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 msgctxt "@info:status" msgid "Access to the printer accepted" msgstr "Kabul edilen yazıcıya erişim" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 msgctxt "@info:status" msgid "No access to print with this printer. Unable to send print job." msgstr "Bu yazıcıyla yazdırmaya erişim yok. Yazdırma işi gönderilemedi." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 msgctxt "@action:button" msgid "Request Access" msgstr "Erişim Talep Et" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 msgctxt "@info:tooltip" msgid "Send access request to the printer" msgstr "Yazıcıya erişim talebi gönder" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:358 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 msgctxt "@info:status" msgid "Connected over the network. Please approve the access request on the printer." msgstr "Ağ üzerinden bağlandı. Lütfen yazıcıya erişim isteğini onaylayın." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:365 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 msgctxt "@info:status" msgid "Connected over the network." msgstr "Ağ üzerinden bağlandı." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:378 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 msgctxt "@info:status" msgid "Connected over the network. No access to control the printer." msgstr "Ağ üzerinden bağlandı. Yazıcıyı kontrol etmek için erişim yok." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:383 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 msgctxt "@info:status" msgid "Access request was denied on the printer." msgstr "Yazıcıya erişim talebi reddedildi." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:386 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 msgctxt "@info:status" msgid "Access request failed due to a timeout." msgstr "Erişim talebi zaman aşımı nedeniyle başarısız oldu." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:450 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 msgctxt "@info:status" msgid "The connection with the network was lost." msgstr "Ağ bağlantısı kaybedildi." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:481 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 msgctxt "@info:status" msgid "The connection with the printer was lost. Check your printer to see if it is connected." msgstr "Yazıcı bağlantısı kaybedildi. Yazıcınızın bağlı olup olmadığını kontrol edin." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:630 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 #, python-format msgctxt "@info:status" msgid "Unable to start a new print job, printer is busy. Current printer status is %s." msgstr "Yazıcı meşgul, yeni bir yazdırma başlatılamıyor. Geçerli yazıcı durumu: %s." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:654 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "Yazıcı Durumu" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No Printcore loaded in slot {0}" msgstr "Yeni yazdırma işi başlatılamıyor. {0} yuvasına PrintCore yüklenmedi." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:661 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 #, python-brace-format msgctxt "@info:status" msgid "Unable to start a new print job. No material loaded in slot {0}" msgstr "Yeni bir yazdırma başlatılamıyor. {0} yuvasına Malzeme yüklenmedi" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 #, python-brace-format msgctxt "@label" msgid "Not enough material for spool {0}." msgstr "Biriktirme {0} için yeterli malzeme yok." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:680 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" -msgstr "" +msgstr "Ekstruder {2} için farklı bir PrintCore (Cura: {0}, Yazıcı: {1}) seçildi" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:694 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 #, python-brace-format msgctxt "@label" msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" msgstr "Farklı malzeme (Cura: {0}, Yazıcı: {1}), ekstrüder {2} için seçildi" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 #, python-brace-format msgctxt "@label" msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." -msgstr "" +msgstr "PrintCore {0} düzgün bir şekilde ayarlanmadı. XY ayarının yazıcıda yapılması gerekiyor." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:707 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 msgctxt "@label" msgid "Are you sure you wish to print with the selected configuration?" msgstr "Seçilen yapılandırma ile yazdırmak istediğinizden emin misiniz?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:708 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 msgctxt "@label" msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." msgstr "Yazıcı yapılandırması veya kalibrasyonu ile Cura arasında eşleşme sorunu var. En iyi sonucu almak istiyorsanız her zaman PrintCore ve yazıcıya eklenen malzemeler için dilimleme yapın." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:714 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 msgctxt "@window:title" msgid "Mismatched configuration" msgstr "Uyumsuz yapılandırma" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:815 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 msgctxt "@info:status" msgid "Sending data to printer" msgstr "Veriler yazıcıya gönderiliyor" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:816 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 -#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 -#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:137 -#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 -msgctxt "@action:button" -msgid "Cancel" -msgstr "İptal et" +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "Veri gönderiliyor" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:884 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 msgctxt "@info:status" msgid "Unable to send data to printer. Is another job still active?" msgstr "Veriler yazıcıya gönderilemedi. Hala etkin olan başka bir iş var mı?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1018 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 msgctxt "@label:MonitorStatus" msgid "Aborting print..." msgstr "Yazdırma durduruluyor..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1024 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 msgctxt "@label:MonitorStatus" msgid "Print aborted. Please check the printer" msgstr "Yazdırma durduruldu. Lütfen yazıcıyı kontrol edin" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1030 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 msgctxt "@label:MonitorStatus" msgid "Pausing print..." msgstr "Yazdırma duraklatılıyor..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1032 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 msgctxt "@label:MonitorStatus" msgid "Resuming print..." msgstr "Yazdırma devam ediyor..." -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1175 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 msgctxt "@window:title" msgid "Sync with your printer" msgstr "Yazıcınız ile eşitleyin" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1177 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 msgctxt "@label" msgid "Would you like to use your current printer configuration in Cura?" msgstr "Cura’da geçerli yazıcı yapılandırmanızı kullanmak istiyor musunuz?" -#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1179 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 msgctxt "@label" msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." -msgstr "" +msgstr "Yazıcınızda bulunan PrintCore’lar ve/veya malzemeler geçerli projenizde bulunandan farklı. En iyi sonucu almak istiyorsanız, her zaman PrintCore ve yazıcıya eklenen malzemeler için dilimleme yapın." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 msgctxt "@action" msgid "Connect via Network" msgstr "Ağ ile Bağlan" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:172 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "Bu yazıcı, bağlı Ultimaker 3 yazıcı grubunu barındırmak için ayarlı değildir." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "Bu yazıcı, bağlı {count} Ultimaker 3 yazıcı grubunun ana makinesidir." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name}, '{job_name}' yazdırmayı tamamladı. Lütfen çıktıyı alın ve yapı levhasının temizlenmesini onaylayın." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name}, '{job_name}' yazdırmak için ayrılmıştır. Yazıcının yazdırmayı başlatması için lütfen yazıcı yapılandırmasını işe uygun olacak şekilde değiştirin." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "Yeni işlerin gönderilmesi (geçici olarak) engellenmiştir, hala bir önceki yazdırma işi gönderiliyor." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "Yeni yazdırma işi gönderilemiyor: bu 3D yazıcı, bağlı Ultimaker 3 yazıcı grubunu barındırmak için (henüz) ayarlı değildir." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "{file_name}, {cluster_name} grubuna gönderiliyor" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "{file_name}, {cluster_name} grubuna gönderildi." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "Yazdırma işlerini göster" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "Yazdırma işleri arayüzünü tarayıcınızda açar." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "Yazdırma işi, {cluster_name} grubuna gönderilemiyor." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "Makinenizin {machine_name} en son özellikler ile donanımlı olmasını sağlamak için bellenimi düzenli olarak güncellenmeniz önerilir. Bu, (ağa bağlı olduğunuzda) {machine_name} üzerinde veya USB ile gerçekleştirilebilir." + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "Yeni %s bellenimi mevcut" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "İndir" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "Güncelleme bilgilerine erişilemedi." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 msgctxt "@info:status" msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" -msgstr "" +msgstr "SolidWorks dosyanızı açarken hata meydana geldi! Lütfen dosyanızın SolidWorks’te sorunsuz açılıp açılmadığını kontrol edin!" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 msgctxt "@item:inlistbox" msgid "SolidWorks part file" -msgstr "" +msgstr "SolidWorks part dosyası" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 msgctxt "@item:inlistbox" msgid "SolidWorks assembly file" -msgstr "" +msgstr "SolidWorks assembly dosyası" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 msgid "Configure" -msgstr "" +msgstr "Yapılandırma" -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:129 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 #, python-format msgctxt "@info:status" msgid "Error while starting %s!" -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:207 -msgctxt "@info:status" -msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" -msgstr "" +msgstr "%s başlatılırken hata oluştu!" #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 msgid "Modify G-Code" @@ -452,9 +718,14 @@ msgstr "GCode Değiştir" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 msgctxt "@info" msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." -msgstr "" +msgstr "Cura anonim dilimleme istatistiklerini toplar. Bu özelliği tercihlerden devre dışı bırakabilirsiniz." -#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:44 +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "Veri Toplanıyor" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "Dismiss" msgstr "Son Ver" @@ -472,14 +743,19 @@ msgstr "G-code dosyası" #: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 msgctxt "@item:inlistbox" -msgid "Layers" -msgstr "Katmanlar" +msgid "Layer view" +msgstr "Katman görünümü" #: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" msgstr "Tel Yazma etkinleştirildiğinde, Cura katmanları doğru olarak görüntülemez." +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "Katman Görünümü" + #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "JPG Image" @@ -505,24 +781,31 @@ msgctxt "@item:inlistbox" msgid "GIF Image" msgstr "GIF Resmi" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:281 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 msgctxt "@info:status" -msgid "The selected material is incompatible with the selected machine or configuration." -msgstr "Seçilen malzeme, seçilen makine veya yapılandırma ile uyumlu değil." +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "Mevcut malzeme, seçilen makine veya yapılandırma ile uyumlu olmadığından mevcut malzeme ile dilimlenemedi." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "Dilimlenemedi" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 #, python-brace-format msgctxt "@info:status" msgid "Unable to slice with the current settings. The following settings have errors: {0}" msgstr "Geçerli ayarlarla dilimlenemiyor. Şu ayarlarda hata var: {0}" -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:317 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 msgctxt "@info:status" msgid "Unable to slice because the prime tower or prime position(s) are invalid." msgstr "İlk direk veya ilk konum(lar) geçersiz olduğu için dilimlenemiyor." -#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:325 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 msgctxt "@info:status" msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." msgstr "Modeller yapı hacmine sığmadığı için dilimlenecek bir şey yok. Lütfen sığdırmak için modelleri ölçeklendirin veya döndürün." @@ -533,6 +816,11 @@ msgctxt "@info:status" msgid "Processing Layers" msgstr "Katmanlar İşleniyor" +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "Bilgi" + #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" @@ -544,13 +832,13 @@ msgid "Configure Per Model Settings" msgstr "Model Başına Ayarları Yapılandır" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:454 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 msgctxt "@title:tab" msgid "Recommended" msgstr "Önerilen Ayarlar" #: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:459 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 msgctxt "@title:tab" msgid "Custom" msgstr "Özel" @@ -561,25 +849,37 @@ msgctxt "@item:inlistbox" msgid "3MF File" msgstr "3MF Dosyası" -#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:122 -#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1050 +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 msgctxt "@label" msgid "Nozzle" msgstr "Nozül" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" msgid "Browse plugins" -msgstr "" +msgstr "Eklentilere göz at" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:120 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "Eklenti kimliği, {0} dosyasından alınamadı" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "Uyarı" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 msgctxt "@window:title" msgid "Plugin browser" -msgstr "" +msgstr "Eklenti tarayıcısı" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" -msgid "Solid" -msgstr "Katı" +msgid "Solid view" +msgstr "Gerçek görünüm" #: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 msgctxt "@item:inlistbox" @@ -591,7 +891,13 @@ msgctxt "@info:status" msgid "Parsing G-code" msgstr "G-code ayrıştırma" -#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "G-code Ayrıntıları" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 msgctxt "@info:generic" msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." msgstr "Dosya göndermeden önce g-code’un yazıcınız ve yazıcı yapılandırmanız için uygun olduğundan emin olun. G-code temsili doğru olmayabilir." @@ -613,7 +919,7 @@ msgid "Cura Project 3MF file" msgstr "Cura Projesi 3MF dosyası" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 -#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 msgctxt "@action" msgid "Select upgrades" msgstr "Yükseltmeleri seçin" @@ -633,18 +939,73 @@ msgctxt "@action" msgid "Level build plate" msgstr "Yapı levhasını dengele" -#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Dış Duvar" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "İç Duvarlar" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Yüzey Alanı" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Dolgu" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Destek Dolgusu" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Destek Arayüzü" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "Destek" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Etek" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Hareket" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Geri Çekmeler" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "Diğer" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 #, python-brace-format msgctxt "@label" msgid "Pre-sliced file {0}" msgstr "Önceden dilimlenmiş dosya {0}" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:440 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 msgctxt "@item:material" msgid "No material loaded" msgstr "Hiçbir malzeme yüklenmedi" -#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:447 +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 msgctxt "@item:material" msgid "Unknown material" msgstr "Bilinmeyen malzeme" @@ -654,116 +1015,153 @@ msgctxt "@info:status" msgid "Finding new location for objects" msgstr "Nesneler için yeni konum bulunuyor" -#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "Konumu Buluyor" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 msgctxt "@info:status" msgid "Unable to find a location within the build volume for all objects" msgstr "Yapılan hacim içinde tüm nesneler için konum bulunamadı" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:417 +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "Konum Bulunamıyor" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 msgctxt "@title:window" msgid "File Already Exists" msgstr "Dosya Zaten Mevcut" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:418 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 #, python-brace-format -msgctxt "@label" +msgctxt "@label Don't translate the XML tag !" msgid "The file {0} already exists. Are you sure you want to overwrite it?" -msgstr "Dosya {0} zaten mevcut. Üstüne yazmak istediğinizden emin misiniz?" +msgstr "Dosya {0} zaten mevcut. Üstüne yazmak istediğinizden emin misiniz?" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:801 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 msgctxt "@label" msgid "Custom" msgstr "Özel" -#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:805 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 msgctxt "@label" msgid "Custom Material" msgstr "Özel Malzeme" +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Seçilen malzeme, seçilen makine veya yapılandırma ile uyumlu değil." + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "Uyumsuz Malzeme" + #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 msgctxt "@info:status Has a cancel button next to it." msgid "The selected material diameter causes the material to become incompatible with the current printer." -msgstr "" +msgstr "Seçilen malzeme çapı, malzemeyi güncel yazıcıyla uyumsuz hale getiriyor." #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action:button" msgid "Undo" -msgstr "" +msgstr "Geri Al" #: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 msgctxt "@action" msgid "Undo changing the material diameter." -msgstr "" +msgstr "Malzeme çapını değiştirme işlemini geri al." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to export profile to {0}: {1}" -msgstr "Profilin {0}na aktarımı başarısız oldu: {1}" +msgstr "Profilin {0} dosyasına aktarımı başarısız oldu: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr "Profilin {0}na aktarımı başarısız oldu: Yazıcı uzantı hata bildirdi." +msgstr "Profilin {0} dosyasına aktarımı başarısız oldu: Yazıcı eklentisinde rapor edilen hata." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Exported profile to {0}" -msgstr "Profil {0}na aktarıldı" +msgstr "Profil {0} dosyasına aktarıldı" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "Dışa Aktarım Ayrıntıları" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 #, python-brace-format -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}: {1}" -msgstr "{0}dan profil içe aktarımı başarısız oldu: {1}" +msgstr "{0} dosyasından profil içe aktarımı başarısız oldu: {1}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 #, python-brace-format msgctxt "@info:status" msgid "Successfully imported profile {0}" msgstr "Profil başarıyla içe aktarıldı {0}" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 #, python-brace-format msgctxt "@info:status" msgid "Profile {0} has an unknown file type or is corrupted." msgstr "Profil {0} öğesinde bilinmeyen bir dosya türü var veya profil bozuk." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 msgctxt "@label" msgid "Custom profile" msgstr "Özel profil" -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 msgctxt "@info:status" msgid "Profile is missing a quality type." msgstr "Profilde eksik bir kalite tipi var." -#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 #, python-brace-format msgctxt "@info:status" msgid "Could not find a quality type {0} for the current configuration." msgstr "Mevcut yapılandırma için bir kalite tipi {0} bulunamıyor." -#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 msgctxt "@info:status" msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." msgstr "Portalın yazdırılan modeller ile çarpışmasını önlemek için yapı hacmi yüksekliği “Sıralamayı Yazdır” ayarı nedeniyle azaltıldı." +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "Yapı Disk Bölümü" + #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 msgctxt "@info:status" msgid "Multiplying and placing objects" msgstr "Nesneler çoğaltılıyor ve yerleştiriliyor" +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "Nesne Yerleştiriliyor" + #: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 msgctxt "@title:window" msgid "Crash Report" @@ -775,44 +1173,41 @@ msgid "" "

A fatal exception has occurred that we could not recover from!

\n" "

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" " " -msgstr "" -"

Kurtulunamayan ciddi bir olağanüstü durum oluştu!

\n" -"

Yazılım hatası raporunu http://github.com/Ultimaker/Cura/issues

adresine gönderirken aşağıdaki bilgileri kullanınız\n" -" " +msgstr "

Kurtulunamayan ciddi bir olağanüstü durum oluştu!

\n

Yazılım hatası raporunu http://github.com/Ultimaker/Cura/issues adresine gönderirken aşağıdaki bilgileri kullanınız

\n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 msgctxt "@action:button" msgid "Open Web Page" msgstr "Web Sayfasını Aç" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:248 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 msgctxt "@info:progress" msgid "Loading machines..." msgstr "Makineler yükleniyor..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:610 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 msgctxt "@info:progress" msgid "Setting up scene..." msgstr "Görünüm ayarlanıyor..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:652 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 msgctxt "@info:progress" msgid "Loading interface..." msgstr "Arayüz yükleniyor..." -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:815 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 #, python-format msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." msgid "%(width).1f x %(depth).1f x %(height).1f mm" -msgstr "" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1285 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 #, python-brace-format msgctxt "@info:status" msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" msgstr "Aynı anda yalnızca bir G-code dosyası yüklenebilir. {0} içe aktarma atlandı" -#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1294 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 #, python-brace-format msgctxt "@info:status" msgid "Can't open any other file if G-code is loading. Skipped importing {0}" @@ -842,12 +1237,12 @@ msgstr "X (Genişlik)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:286 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:838 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 msgctxt "@label" msgid "mm" msgstr "mm" @@ -865,22 +1260,22 @@ msgstr "Z (Yükseklik)" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 msgctxt "@label" msgid "Build plate shape" -msgstr "" +msgstr "Yapı levhası şekli" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 msgctxt "@option:check" msgid "Origin at center" -msgstr "" +msgstr "Merkez nokta" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 msgctxt "@option:check" msgid "Heated bed" -msgstr "" +msgstr "Isıtılmış yatak" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 msgctxt "@label" msgid "Gcode flavor" -msgstr "" +msgstr "Gcode türü" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 msgctxt "@label" @@ -895,7 +1290,7 @@ msgstr "X min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 msgctxt "@tooltip" msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Yazıcı başlığının solundan nozülün ortasına kadar olan mesafe. “Birer birer” çıktı alırken önceki çıktılar ile yazıcı başlığının çakışmasını önlemek için kullanılır." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 msgctxt "@label" @@ -905,7 +1300,7 @@ msgstr "Y min" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 msgctxt "@tooltip" msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Yazıcı başlığının ön kısmından nozülün ortasına kadar olan mesafe. “Birer birer” çıktı alırken önceki çıktılar ile yazıcı başlığının çakışmasını önlemek için kullanılır." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 msgctxt "@label" @@ -915,7 +1310,7 @@ msgstr "X maks" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 msgctxt "@tooltip" msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Yazıcı başlığının sağından nozülün ortasına kadar olan mesafe. “Birer birer” çıktı alırken önceki çıktılar ile yazıcı başlığının çakışmasını önlemek için kullanılır." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 msgctxt "@label" @@ -925,7 +1320,7 @@ msgstr "Y maks" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 msgctxt "@tooltip" msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." -msgstr "" +msgstr "Yazıcı başlığının arkasından nozülün ortasına kadar olan mesafe. “Birer birer” çıktı alırken önceki çıktılar ile yazıcı başlığının çakışmasını önlemek için kullanılır." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 msgctxt "@label" @@ -935,130 +1330,74 @@ msgstr "Portal yüksekliği" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "" +msgstr "Nozül ucu ve portal sistemi (X ve Y aksları) arasındaki yükseklik farkı. “Birer birer” çıktı alırken önceki çıktılar ile portalın çakışmasını önlemek için kullanılır." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:253 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 msgctxt "@label" msgid "Number of Extruders" msgstr "Ekstrüder Sayısı" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 msgctxt "@tooltip" msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." -msgstr "" +msgstr "Yazıcı tarafından desteklenen nominal filaman çapı. Tam çap malzeme ve/veya profil tarafından etkisiz kılınacaktır." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:289 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 msgctxt "@label" msgid "Material diameter" -msgstr "" +msgstr "Malzeme çapı" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:388 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 msgctxt "@label" msgid "Nozzle size" msgstr "Nozzle boyutu" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:315 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 msgctxt "@label" msgid "Start Gcode" msgstr "Gcode’u başlat" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:325 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very start." -msgstr "" +msgstr "Başlangıçta yürütülecek Gcode komutları." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:334 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 msgctxt "@label" msgid "End Gcode" msgstr "Gcode’u sonlandır" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:344 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 msgctxt "@tooltip" msgid "Gcode commands to be executed at the very end." -msgstr "" +msgstr "Bitişte yürütülecek Gcode komutları." -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:376 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 msgctxt "@label" msgid "Nozzle Settings" msgstr "Nozül Ayarları" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:398 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 msgctxt "@label" msgid "Nozzle offset X" msgstr "Nozül X ofseti" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:410 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 msgctxt "@label" msgid "Nozzle offset Y" msgstr "Nozül Y ofseti" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:431 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 msgctxt "@label" msgid "Extruder Start Gcode" msgstr "Ekstrüder Gcode’u başlat" -#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:449 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 msgctxt "@label" msgid "Extruder End Gcode" msgstr "Ekstrüder Gcode’u sonlandır" -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 -msgctxt "@title:window" -msgid "Doodle3D Settings" -msgstr "Doodle3D Ayarları" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 -#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 -msgctxt "@action:button" -msgid "Save" -msgstr "Kaydet" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 -msgctxt "@title:window" -msgid "Print to: %1" -msgstr "Şuraya yazdır: %1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 -msgctxt "@label" -msgid "Extruder Temperature: %1/%2°C" -msgstr "Ekstruder Sıcaklığı: %1/%2°C" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 -msgctxt "@label" -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-13 17:41+0200\n" -"PO-Revision-Date: 2016-09-29 13:44+0200\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 -msgctxt "@label" -msgid "Bed Temperature: %1/%2°C" -msgstr "Yatak Sıcaklığı: %1/%2°C" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 -msgctxt "@label" -msgid "%1" -msgstr "%1" - -#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 -msgctxt "@action:button" -msgid "Print" -msgstr "Yazdır" - #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 msgctxt "@label" msgid "Changelog" @@ -1067,9 +1406,10 @@ msgstr "Değişiklik Günlüğü" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 #: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 #: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:306 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:78 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 #: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 @@ -1123,33 +1463,35 @@ msgid "Unknown error code: %1" msgstr "Bilinmeyen hata kodu: %1" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 msgctxt "@title:window" msgid "Connect to Networked Printer" msgstr "Ağ Yazıcısına Bağlan" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 msgctxt "@label" msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n" -"\n" -"Aşağıdaki listeden yazıcınızı seçin:" +msgstr "Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n\nAşağıdaki listeden yazıcınızı seçin:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 msgctxt "@action:button" msgid "Add" msgstr "Ekle" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 msgctxt "@action:button" msgid "Edit" msgstr "Düzenle" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 @@ -1158,111 +1500,244 @@ msgid "Remove" msgstr "Kaldır" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:33 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 msgctxt "@action:button" msgid "Refresh" msgstr "Yenile" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 msgctxt "@label" msgid "If your printer is not listed, read the network printing troubleshooting guide" -msgstr "" +msgstr "Yazıcınız listede yoksa ağ yazdırma sorun giderme kılavuzunu okuyun" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 msgctxt "@label" msgid "Type" msgstr "Tür" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 msgctxt "@label" msgid "Ultimaker 3" msgstr "Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 msgctxt "@label" msgid "Ultimaker 3 Extended" msgstr "Genişletilmiş Ultimaker 3" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 msgctxt "@label" msgid "Unknown" msgstr "Bilinmiyor" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 msgctxt "@label" msgid "Firmware version" msgstr "Üretici yazılımı sürümü" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 msgctxt "@label" msgid "Address" msgstr "Adres" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 msgctxt "@label" msgid "The printer at this address has not yet responded." msgstr "Bu adresteki yazıcı henüz yanıt vermedi." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 msgctxt "@action:button" msgid "Connect" msgstr "Bağlan" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 msgctxt "@title:window" msgid "Printer Address" msgstr "Yazıcı Adresi" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 msgctxt "@alabel" msgid "Enter the IP address or hostname of your printer on the network." msgstr "IP adresini veya yazıcınızın ağ üzerindeki ana bilgisayar adını girin." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 msgctxt "@action:button" msgid "Ok" msgstr "Tamam" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 msgctxt "@info:tooltip" msgid "Connect to a printer" msgstr "Yazıcıya Bağlan" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 msgctxt "@info:tooltip" msgid "Load the configuration of the printer into Cura" msgstr "Yazıcı yapılandırmasını Cura’ya yükle" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 msgctxt "@action:button" msgid "Activate Configuration" msgstr "Yapılandırmayı Etkinleştir" +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "Bu yazıcı, bağlı Ultimaker 3 yazıcı grubunu barındırmak için ayarlı değildir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "Bu yazıcı, %1 bağlı Ultimaker 3 yazıcı grubunun ana makinesidir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "Ağ üzerinden yazdır" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "Yazdır" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1, bağlı Ultimaker 3 yazıcı grubunu barındırmak için ayarlı değildir" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "Yazdırma" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "Rezerve edildi" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "Tamamlandı" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "Hazırlanıyor" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "Mevcut" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "Tamamlandığı tarih: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "Yapı levhasını temizle" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "Yazdırmaya hazırlanıyor" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "Yazdırma işleri kabul edilmiyor" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "Yazdırma işlerini varsayılan web tarayıcınızda açar." + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "Yazdırma işlerini görüntüle" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "YAZICI GRUBU" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "Yazdırma görevleri" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "Yazdırma" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "Kuyrukta" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "Yapılandırma değişikliğini bekliyor" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "Yazıcılar" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "Yazıcıları görüntüle" + #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 msgctxt "@title:window" msgid "Cura SolidWorks Plugin Configuration" -msgstr "" +msgstr "Cura SolidWorks Eklenti Yapılandırması" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 msgctxt "@action:label" msgid "Default quality of the exported STL:" -msgstr "" +msgstr "Dışa aktarılan STL dosyasının varsayılan kalitesi:" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 msgctxt "@option:curaSolidworksStlQuality" msgid "Always ask" -msgstr "" +msgstr "Her zaman sor" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Fine quality" -msgstr "" +msgstr "Her zaman İnce kalite modunu kullan" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 msgctxt "@option:curaSolidworksStlQuality" msgid "Always use Coarse quality" -msgstr "" +msgstr "Her zaman Düşük kalite modunu kullan" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 @@ -1274,27 +1749,27 @@ msgstr "TAMAM" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 msgctxt "@title:window" msgid "Import SolidWorks File as STL..." -msgstr "" +msgstr "SolidWorks Dosyasını STL olarak içe aktar..." #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 msgctxt "@info:tooltip" msgid "Quality of the Exported STL" -msgstr "" +msgstr "Dışa aktarılan STL dosyasının kalitesi" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 msgctxt "@action:label" msgid "Quality" -msgstr "" +msgstr "Kalite" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 msgctxt "@option:curaSolidworksStlQuality" msgid "Coarse" -msgstr "" +msgstr "Düşük" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 msgctxt "@option:curaSolidworksStlQuality" msgid "Fine" -msgstr "" +msgstr "İnce" #: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 @@ -1327,67 +1802,62 @@ msgctxt "@info:tooltip" msgid "Change active post-processing scripts" msgstr "Etkin son işleme dosyalarını değiştir" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:71 -msgctxt "@label" -msgid "View Mode: Layers" -msgstr "Görüntüleme Modu: Katmanlar" - -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:88 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 msgctxt "@label" msgid "Color scheme" msgstr "Renk şeması" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:102 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 msgctxt "@label:listbox" msgid "Material Color" msgstr "Malzeme Rengi" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:106 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 msgctxt "@label:listbox" msgid "Line Type" msgstr "Çizgi Tipi" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:144 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 msgctxt "@label" msgid "Compatibility Mode" msgstr "Uyumluluk Modu" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:210 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 msgctxt "@label" msgid "Show Travels" msgstr "Geçişleri Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 msgctxt "@label" msgid "Show Helpers" msgstr "Yardımcıları Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 msgctxt "@label" msgid "Show Shell" msgstr "Kabuğu Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 msgctxt "@label" msgid "Show Infill" msgstr "Dolguyu Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:264 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 msgctxt "@label" msgid "Only Show Top Layers" msgstr "Yalnızca Üst Katmanları Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 msgctxt "@label" msgid "Show 5 Detailed Layers On Top" msgstr "En Üstteki 5 Ayrıntılı Katmanı Göster" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:284 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 msgctxt "@label" msgid "Top / Bottom" msgstr "Üst / Alt" -#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:288 +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 msgctxt "@label" msgid "Inner Wall" msgstr "İç Duvar" @@ -1462,23 +1932,23 @@ msgctxt "@action:label" msgid "Smoothing" msgstr "Düzeltme" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:157 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 msgctxt "@action:button" msgid "Select settings" msgstr "Ayarları seçin" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:197 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 msgctxt "@title:window" msgid "Select Settings to Customize for this model" msgstr "Bu modeli Özelleştirmek için Ayarları seçin" -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:221 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 msgctxt "@label:textbox" msgid "Filter..." msgstr "Filtrele..." -#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:245 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 msgctxt "@label:checkbox" msgid "Show all" msgstr "Tümünü göster" @@ -1613,27 +2083,45 @@ msgstr "Aç" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 msgctxt "@title:window" msgid "Find & Update plugins" -msgstr "" +msgstr "Eklentileri Bul ve Güncelle" -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:25 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 msgctxt "@label" msgid "Here you can find a list of Third Party plugins." -msgstr "" - -#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:143 -msgctxt "@action:button" -msgid "Upgrade" -msgstr "" +msgstr "Burada Üçüncü Taraf eklentilerinin listesini görebilirsiniz." #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 msgctxt "@action:button" -msgid "Installed" -msgstr "" +msgid "Upgrade" +msgstr "Yükselt" #: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 msgctxt "@action:button" -msgid "Download" -msgstr "" +msgid "Installed" +msgstr "Yüklü" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "Eklenti Lisans Anlaşması" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " eklenti lisans içerir.\nBu eklentiyi kurmak için bu lisans kabul etmeniz gerekir.\nAşağıdaki koşulları kabul ediyor musunuz?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "Kabul et" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "Reddet" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -1809,71 +2297,71 @@ msgctxt "@label" msgid "Everything is in order! You're done with your CheckUp." msgstr "Her şey yolunda! Kontrol işlemini tamamladınız." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" msgstr "Yazıcıya bağlı değil" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 msgctxt "@label:MonitorStatus" msgid "Printer does not accept commands" msgstr "Yazıcı komutları kabul etmiyor" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 msgctxt "@label:MonitorStatus" msgid "In maintenance. Please check the printer" msgstr "Bakımda. Lütfen yazıcıyı kontrol edin" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 msgctxt "@label:MonitorStatus" msgid "Lost connection with the printer" msgstr "Yazıcı bağlantısı koptu" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 msgctxt "@label:MonitorStatus" msgid "Printing..." msgstr "Yazdırılıyor..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 msgctxt "@label:MonitorStatus" msgid "Paused" msgstr "Duraklatıldı" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 msgctxt "@label:MonitorStatus" msgid "Preparing..." msgstr "Hazırlanıyor..." -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 msgctxt "@label:MonitorStatus" msgid "Please remove the print" msgstr "Lütfen yazıcıyı çıkarın " -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 msgctxt "@label:" msgid "Resume" msgstr "Devam et" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 msgctxt "@label:" msgid "Pause" msgstr "Durdur" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 msgctxt "@label:" msgid "Abort Print" msgstr "Yazdırmayı Durdur" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 msgctxt "@window:title" msgid "Abort print" msgstr "Yazdırmayı durdur" -#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 msgctxt "@label" msgid "Are you sure you want to abort the print?" msgstr "Yazdırmayı iptal etmek istediğinizden emin misiniz?" @@ -1888,9 +2376,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Bazı profil ayarlarını özelleştirdiniz.\n" -"Bu ayarları kaydetmek veya iptal etmek ister misiniz?" +msgstr "Bazı profil ayarlarını özelleştirdiniz.\nBu ayarları kaydetmek veya iptal etmek ister misiniz?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -1908,19 +2394,19 @@ msgid "Customized" msgstr "Özelleştirilmiş" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:586 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 msgctxt "@option:discardOrKeep" msgid "Always ask me this" msgstr "Her zaman sor" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:587 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 msgctxt "@option:discardOrKeep" msgid "Discard and never ask again" msgstr "İptal et ve bir daha sorma" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:588 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 msgctxt "@option:discardOrKeep" msgid "Keep and never ask again" msgstr "Kaydet ve bir daha sorma" @@ -2038,7 +2524,7 @@ msgstr "Tümünü denetle" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" msgid "Calculated" -msgstr "" +msgstr "Hesaplanmış" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 msgctxt "@title:column" @@ -2061,7 +2547,7 @@ msgid "Unit" msgstr "Birim" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 msgctxt "@title:tab" msgid "General" msgstr "Genel" @@ -2076,223 +2562,223 @@ msgctxt "@label" msgid "Language:" msgstr "Dil:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:198 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 msgctxt "@label" msgid "Currency:" msgstr "Para Birimi:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 msgctxt "@label" msgid "Theme:" msgstr "Tema:" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 msgctxt "@label" msgid "You will need to restart the application for these changes to have effect." msgstr "Bu değişikliklerinin geçerli olması için uygulamayı yeniden başlatmanız gerekecektir." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 msgctxt "@info:tooltip" msgid "Slice automatically when changing settings." msgstr "Ayarlar değiştirilirken otomatik olarak dilimle." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:297 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 msgctxt "@option:check" msgid "Slice automatically" msgstr "Otomatik olarak dilimle" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 msgctxt "@label" msgid "Viewport behavior" msgstr "Görünüm şekli" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 msgctxt "@info:tooltip" msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." msgstr "Modelin desteklenmeyen alanlarını kırmızı ile gösterin. Destek alınmadan bu alanlar düzgün bir şekilde yazdırılmayacaktır." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:328 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 msgctxt "@option:check" msgid "Display overhang" msgstr "Dışarıda kalan alanı göster" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" msgstr "Bir model seçildiğinde bu model görüntünün ortasında kalacak şekilde kamera hareket eder." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 msgctxt "@action:button" msgid "Center camera when item is selected" msgstr "Öğeyi seçince kamerayı ortalayın" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:349 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 msgctxt "@info:tooltip" msgid "Should the default zoom behavior of cura be inverted?" msgstr "Cura’nın varsayılan yakınlaştırma davranışı tersine çevrilsin mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:354 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 msgctxt "@action:button" msgid "Invert the direction of camera zoom." msgstr "Kamera yakınlaştırma yönünü ters çevir." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:363 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 msgctxt "@info:tooltip" msgid "Should zooming move in the direction of the mouse?" -msgstr "" +msgstr "Yakınlaştırma farenin hareket yönüne uygun olsun mu?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 msgctxt "@action:button" msgid "Zoom toward mouse direction" -msgstr "" +msgstr "Farenin hareket yönüne göre yakınlaştır" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:377 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 msgctxt "@info:tooltip" msgid "Should models on the platform be moved so that they no longer intersect?" msgstr "Platformun üzerindeki öğeler kesişmemeleri için hareket ettirilmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:382 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 msgctxt "@option:check" msgid "Ensure models are kept apart" msgstr "Modellerin birbirinden ayrı olduğundan emin olduğundan emin olun" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 msgctxt "@info:tooltip" msgid "Should models on the platform be moved down to touch the build plate?" msgstr "Platformun üzerindeki modeller yapı levhasına değmeleri için indirilmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:395 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 msgctxt "@option:check" msgid "Automatically drop models to the build plate" msgstr "Modelleri otomatik olarak yapı tahtasına indirin" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:407 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 msgctxt "@info:tooltip" msgid "Show caution message in gcode reader." msgstr "Gcode okuyucuda uyarı mesajı göster." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 msgctxt "@option:check" msgid "Caution message in gcode reader" msgstr "Gcode okuyucuda uyarı mesajı" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" msgid "Should layer be forced into compatibility mode?" msgstr "Katman, uyumluluk moduna zorlansın mı?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 msgctxt "@option:check" msgid "Force layer view compatibility mode (restart required)" msgstr "Katman görünümünü uyumluluk moduna zorla (yeniden başlatma gerekir)" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:444 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 msgctxt "@label" msgid "Opening and saving files" msgstr "Dosyaların açılması ve kaydedilmesi" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:450 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 msgctxt "@info:tooltip" msgid "Should models be scaled to the build volume if they are too large?" msgstr "Modeller çok büyükse yapı hacmine göre ölçeklendirilmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 msgctxt "@option:check" msgid "Scale large models" msgstr "Büyük modelleri ölçeklendirin" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:464 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 msgctxt "@info:tooltip" msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" msgstr "Bir modelin birimi milimetre değil de metre ise oldukça küçük görünebilir. Bu modeller ölçeklendirilmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:469 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 msgctxt "@option:check" msgid "Scale extremely small models" msgstr "Çok küçük modelleri ölçeklendirin" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:478 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 msgctxt "@info:tooltip" msgid "Should a prefix based on the printer name be added to the print job name automatically?" msgstr "Yazıcı adına bağlı bir ön ek otomatik olarak yazdırma işinin adına eklenmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 msgctxt "@option:check" msgid "Add machine prefix to job name" msgstr "Makine ön ekini iş adına ekleyin" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:492 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 msgctxt "@info:tooltip" msgid "Should a summary be shown when saving a project file?" msgstr "Bir proje dosyasını kaydederken özet gösterilmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:496 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 msgctxt "@option:check" msgid "Show summary dialog when saving project" msgstr "Projeyi kaydederken özet iletişim kutusunu göster" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@info:tooltip" msgid "Default behavior when opening a project file" msgstr "Bir proje dosyası açıldığında varsayılan davranış" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:513 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 msgctxt "@window:text" msgid "Default behavior when opening a project file: " msgstr "Bir proje dosyası açıldığında varsayılan davranış: " -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:526 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 msgctxt "@option:openProject" msgid "Always ask" msgstr "Her zaman sor" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:527 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 msgctxt "@option:openProject" msgid "Always open as a project" msgstr "Her zaman proje olarak aç" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:528 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 msgctxt "@option:openProject" msgid "Always import models" msgstr "Her zaman modelleri içe aktar" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@info:tooltip" msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." msgstr "Bir profil üzerinde değişiklik yapıp farklı bir profile geçtiğinizde, değişikliklerin kaydedilmesini isteyip istemediğinizi soran bir iletişim kutusu açılır. Alternatif olarak bu işleve yönelik varsayılan bir davranış seçebilir ve bu iletişim kutusunun bir daha görüntülenmemesini tercih edebilirsiniz." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 msgctxt "@label" msgid "Override Profile" msgstr "Profilin Üzerine Yaz" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 msgctxt "@label" msgid "Privacy" msgstr "Gizlilik" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 msgctxt "@info:tooltip" msgid "Should Cura check for updates when the program is started?" msgstr "Cura, program başladığında güncellemeleri kontrol etmeli mi?" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:634 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:check" msgid "Check for updates on start" msgstr "Başlangıçta güncellemeleri kontrol edin" -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:644 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 msgctxt "@info:tooltip" msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgstr "Yazdırmanızdaki anonim veriler Ultimaker’a gönderilmeli mi? Unutmayın; hiçbir model, IP adresi veya diğer kişiye özgü bilgiler gönderilmez veya saklanmaz." -#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@option:check" msgid "Send (anonymous) print information" msgstr "(Anonim) yazdırma bilgisi gönder" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:497 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 msgctxt "@title:tab" msgid "Printers" msgstr "Yazıcılar" @@ -2342,7 +2828,7 @@ msgid "Waiting for a printjob" msgstr "Yazdırma işlemi bekleniyor" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 msgctxt "@title:tab" msgid "Profiles" msgstr "Profiller" @@ -2440,7 +2926,7 @@ msgid "Export Profile" msgstr "Profili Dışa Aktar" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:499 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 msgctxt "@title:tab" msgid "Materials" msgstr "Malzemeler" @@ -2472,14 +2958,14 @@ msgid "Import Material" msgstr "Malzemeyi İçe Aktar" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr "Malzeme aktarılamadı%1: %2" +msgstr "Malzeme %1 dosyasına içe aktarılamadı: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "Malzeme başarıyla aktarıldı %1" +msgstr "Malzeme %1 dosyasına başarıyla içe aktarıldı" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 @@ -2488,17 +2974,17 @@ msgid "Export Material" msgstr "Malzemeyi Dışa Aktar" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tags and !" msgid "Failed to export material to %1: %2" -msgstr "Malzemenin dışa aktarımı başarısız oldu %1: %2" +msgstr "Malzemenin %1 dosyasına dışa aktarımı başarısız oldu: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 -msgctxt "@info:status" +msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully exported material to %1" -msgstr "Malzeme başarıyla dışa aktarıldı %1" +msgstr "Malzeme %1 dosyasına başarıyla dışa aktarıldı" #: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:822 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 msgctxt "@title:window" msgid "Add Printer" msgstr "Yazıcı Ekle" @@ -2513,71 +2999,6 @@ msgctxt "@action:button" msgid "Add Printer" msgstr "Yazıcı Ekle" -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:166 -msgctxt "@tooltip" -msgid "Outer Wall" -msgstr "Dış Duvar" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:167 -msgctxt "@tooltip" -msgid "Inner Walls" -msgstr "İç Duvarlar" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:168 -msgctxt "@tooltip" -msgid "Skin" -msgstr "Yüzey Alanı" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:169 -msgctxt "@tooltip" -msgid "Infill" -msgstr "Dolgu" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:170 -msgctxt "@tooltip" -msgid "Support Infill" -msgstr "Destek Dolgusu" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:171 -msgctxt "@tooltip" -msgid "Support Interface" -msgstr "Destek Arayüzü" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:172 -msgctxt "@tooltip" -msgid "Support" -msgstr "Destek" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:173 -msgctxt "@tooltip" -msgid "Travel" -msgstr "Hareket" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:174 -msgctxt "@tooltip" -msgid "Retractions" -msgstr "Geri Çekmeler" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:175 -msgctxt "@tooltip" -msgid "Other" -msgstr "Diğer" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:217 -msgctxt "@label" -msgid "00h 00min" -msgstr "00sa 00dk" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:270 -msgctxt "@label" -msgid "%1 m / ~ %2 g / ~ %4 %3" -msgstr "%1 m / ~ %2 g / ~ %4 %3" - -#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:275 -msgctxt "@label" -msgid "%1 m / ~ %2 g" -msgstr "%1 m / ~ %2 g" - #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" msgid "About Cura" @@ -2593,9 +3014,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\n" -"Cura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" +msgstr "Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 msgctxt "@label" @@ -2645,7 +3064,7 @@ msgstr "Veri değişim biçimi" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 msgctxt "@label" msgid "Support library for scientific computing" -msgstr "" +msgstr "Bilimsel bilgi işlem için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 msgctxt "@label" @@ -2687,32 +3106,45 @@ msgctxt "@label" msgid "SVG icons" msgstr "SVG simgeleri" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "Profil:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n\nProfil yöneticisini açmak için tıklayın." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 msgctxt "@label:textbox" msgid "Search..." msgstr "Ara..." -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:390 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 msgctxt "@action:menu" msgid "Copy value to all extruders" msgstr "Değeri tüm ekstruderlere kopyala" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:405 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 msgctxt "@action:menu" msgid "Hide this setting" msgstr "Bu ayarı gizle" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:415 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 msgctxt "@action:menu" msgid "Don't show this setting" msgstr "Bu ayarı gösterme" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:419 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 msgctxt "@action:menu" msgid "Keep this setting visible" msgstr "Bu ayarı görünür yap" -#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:438 +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 msgctxt "@action:menu" msgid "Configure setting visiblity..." msgstr "Görünürlük ayarını yapılandır..." @@ -2723,10 +3155,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n" -"\n" -"Bu ayarları görmek için tıklayın." +msgstr "Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n\nBu ayarları görmek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 msgctxt "@label Header for list of settings." @@ -2754,10 +3183,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Bu ayarın değeri profilden farklıdır.\n" -"\n" -"Profil değerini yenilemek için tıklayın." +msgstr "Bu ayarın değeri profilden farklıdır.\n\nProfil değerini yenilemek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 msgctxt "@label" @@ -2765,31 +3191,51 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n" -"\n" -"Hesaplanan değeri yenilemek için tıklayın." +msgstr "Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n\nHesaplanan değeri yenilemek için tıklayın." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "Print Setup" msgstr "Yazıcı Ayarları" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Yazdırma Ayarı devre dışı\n" -"G-code dosyaları üzerinde değişiklik yapılamaz" +msgstr "Yazdırma Ayarı devre dışı\nG-code dosyaları üzerinde değişiklik yapılamaz" -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:455 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00sa 00dk" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "Süre bilgisi" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "Yazdırma süresi" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 msgctxt "@tooltip" msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." msgstr "Önerilen Yazıcı Ayarları

Seçilen yazıcı, malzeme ve kalite için önerilen ayarları kullanarak yazdırın." -#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:460 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 msgctxt "@tooltip" msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." msgstr "Özel Yazıcı Ayarları

Dilimleme işleminin her bir bölümünü detaylıca kontrol ederek yazdırın." @@ -2807,7 +3253,7 @@ msgstr "&Görünüm" #: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" msgid "Automatic: %1" -msgstr "" +msgstr "Otomatik: %1" #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 msgctxt "@label" @@ -2839,81 +3285,87 @@ msgid "No printer connected" msgstr "Yazıcı bağlı değil" #: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 msgctxt "@label" -msgid "Hotend" -msgstr "Sıcak uç" +msgid "Extruder" +msgstr "Ekstrüder" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "Sıcak ucun hedef sıcaklığı. Sıcak uç, bu sıcaklığa doğru ısıtılır veya soğutulur. Bu ayar 0 olarak belirlenirse sıcak uç ısıtma kapatılır." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 msgctxt "@tooltip" msgid "The current temperature of this extruder." msgstr "Bu ekstruderin geçerli sıcaklığı." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 msgctxt "@tooltip" msgid "The colour of the material in this extruder." msgstr "Bu ekstruderdeki malzemenin rengi." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 msgctxt "@tooltip" msgid "The material in this extruder." msgstr "Bu ekstruderdeki malzeme." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 msgctxt "@tooltip" msgid "The nozzle inserted in this extruder." msgstr "Bu ekstrudere takılan nozül." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 msgctxt "@label" msgid "Build plate" msgstr "Yapı levhası" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 msgctxt "@tooltip" msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." msgstr "Isıtılmış yatağın hedef sıcaklığı. Yatak, bu sıcaklığa doğru ısıtılır veya soğutulur. Bu ayar 0 olarak belirlenirse yatak ısıtma kapatılır." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 msgctxt "@tooltip" msgid "The current temperature of the heated bed." msgstr "Isıtılmış yatağın geçerli sıcaklığı." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:389 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 msgctxt "@tooltip of temperature input" msgid "The temperature to pre-heat the bed to." msgstr "Yatağın ön ısıtma sıcaklığı." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button Cancel pre-heating" msgid "Cancel" msgstr "İptal Et" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:583 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 msgctxt "@button" msgid "Pre-heat" msgstr "Ön ısıtma" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:610 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 msgctxt "@tooltip of pre-heat" msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." msgstr "Yazdırma öncesinde yatağı ısıt. Isıtma sırasında yazdırma işinizi ayarlamaya devam edebilirsiniz. Böylece yazdırmaya hazır olduğunuzda yatağın ısınmasını beklemeniz gerekmez." -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:643 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 msgctxt "@label" msgid "Active print" msgstr "Geçerli yazdırma" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:648 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 msgctxt "@label" msgid "Job Name" msgstr "İşin Adı" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:654 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 msgctxt "@label" msgid "Printing Time" msgstr "Yazdırma süresi" -#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:660 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 msgctxt "@label" msgid "Estimated time left" msgstr "Kalan tahmini süre" @@ -3104,53 +3556,53 @@ msgctxt "@action:menu" msgid "Configure setting visibility..." msgstr "Görünürlük ayarını yapılandır..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 msgctxt "@label:PrintjobStatus" msgid "Please load a 3D model" -msgstr "" +msgstr "Lütfen bir 3D model yükleyin" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 msgctxt "@label:PrintjobStatus" msgid "Ready to slice" msgstr "Dilimlemeye hazır" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 msgctxt "@label:PrintjobStatus" msgid "Slicing..." msgstr "Dilimleniyor..." -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 msgctxt "@label:PrintjobStatus %1 is target operation" msgid "Ready to %1" msgstr "%1 Hazır" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 msgctxt "@label:PrintjobStatus" msgid "Unable to Slice" msgstr "Dilimlenemedi" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 msgctxt "@label:PrintjobStatus" msgid "Slicing unavailable" msgstr "Dilimleme kullanılamıyor" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Prepare" msgstr "Hazırla" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 msgctxt "@label:Printjob" msgid "Cancel" msgstr "İptal Et" -#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 msgctxt "@info:tooltip" msgid "Select the active output device" msgstr "Etkin çıkış aygıtını seçin" #: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:649 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "Open file(s)" msgstr "Dosya aç" @@ -3242,42 +3694,37 @@ msgctxt "@title:menu menubar:toplevel" msgid "&Help" msgstr "&Yardım" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 msgctxt "@action:button" msgid "Open File" msgstr "Dosya Aç" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:428 -msgctxt "@action:button" -msgid "View Mode" -msgstr "Görüntüleme Modu" - -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:495 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 msgctxt "@title:tab" msgid "Settings" msgstr "Ayarlar" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:531 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 msgctxt "@title:window" msgid "New project" msgstr "Yeni proje" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:532 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 msgctxt "@info:question" msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." msgstr "Yeni bir proje başlatmak istediğinizden emin misiniz? Bu işlem yapı levhasını ve kaydedilmemiş tüm ayarları silecektir." -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:750 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 msgctxt "@window:title" msgid "Install Plugin" -msgstr "" +msgstr "Eklenti Kur" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:757 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 msgctxt "@title:window" msgid "Open File(s)" msgstr "Dosya Aç" -#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:760 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 msgctxt "@text:window" msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." msgstr "Seçtiğiniz dosyalar arasında bir veya daha fazla G-code dosyası bulduk. Tek seferde sadece bir G-code dosyası açabilirsiniz. Bir G-code dosyası açmak istiyorsanız, sadece birini seçiniz." @@ -3302,102 +3749,87 @@ msgctxt "@action:label" msgid "Don't show project summary on save again" msgstr "Kaydederken proje özetini bir daha gösterme" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:47 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Kaydet" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 msgctxt "@title:tab" msgid "Prepare" -msgstr "" +msgstr "Hazırla" -#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:60 +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 msgctxt "@title:tab" -msgid "Print" -msgstr "" +msgid "Monitor" +msgstr "İzle" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "Katman Yüksekliği" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "Yazdırma Hızı" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "Daha yavaş" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "Daha Hızlı" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 msgctxt "@label" msgid "Infill" msgstr "Dolgu" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:192 -msgctxt "@label" -msgid "0%" -msgstr "%0" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 -msgctxt "@label" -msgid "Empty infill will leave your model hollow with low strength." -msgstr "Boş dolgu, modelinizin içinin boş ve düşük dayanımlı olmasına neden olacaktır." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:203 -msgctxt "@label" -msgid "20%" -msgstr "%20" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 -msgctxt "@label" -msgid "Light (20%) infill will give your model an average strength." -msgstr "Hafif (%20) dolgu, modelinize ortalama bir dayanıklılık verecektir." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:214 -msgctxt "@label" -msgid "50%" -msgstr "%50" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 -msgctxt "@label" -msgid "Dense (50%) infill will give your model an above average strength." -msgstr "Yoğun (%50) dolgu, modelinize ortalamanın üstünde bir dayanıklılık verecektir." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:225 -msgctxt "@label" -msgid "100%" -msgstr "%100" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 -msgctxt "@label" -msgid "Solid (100%) infill will make your model completely solid." -msgstr "Katı (%100) dolgu, modelinizi tamamen katı bir hale getirecektir." - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:236 -msgctxt "@label" -msgid "Gradual" -msgstr "Kademeli" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:244 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 msgctxt "@label" msgid "Gradual infill will gradually increase the amount of infill towards the top." msgstr "Kademeli dolgu, yukarıya doğru dolgu miktarını kademeli olarak yükselecektir." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:267 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "Kademeli özelliği etkinleştir" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 msgctxt "@label" msgid "Generate Support" msgstr "Oluşturma Desteği" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:300 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 msgctxt "@label" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." msgstr "Modellerin askıda kalan kısımlarını destekleyen yapılar oluşturun. Bu yapılar olmadan, yazdırma sırasında söz konusu kısımlar düşebilir." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:317 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 msgctxt "@label" msgid "Support Extruder" msgstr "Destek Ekstrüderi" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:391 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 msgctxt "@label" msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." msgstr "Destek için kullanacağınız ekstruderi seçin. Bu, modelin havadayken düşmesini veya yazdırılmasını önlemek için modelin altındaki destekleyici yapıları güçlendirir." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 msgctxt "@label" msgid "Build Plate Adhesion" msgstr "Yapı Levhası Yapıştırması" -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:462 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 msgctxt "@label" msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." msgstr "Bir kenar veya radye yazdırın. Bu nesnenizin etrafına veya altına daha sonra kesilmesi kolay olan düz bir alan sağlayacak." -#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:515 +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 msgctxt "@label" msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" msgstr "Yazıcı çıktılarınızı iyileştirmek için yardıma mı ihtiyacınız var?
Ultimaker Sorun Giderme Kılavuzlarını okuyun" @@ -3406,8 +3838,8 @@ msgstr "Yazıcı çıktılarınızı iyileştirmek için yardıma mı ihtiyacın msgctxt "@label %1 is filled in with the name of an extruder" msgid "Print Selected Model with %1" msgid_plural "Print Selected Models with %1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Seçili Modeli %1 ile Yazdır" +msgstr[1] "Seçili Modelleri %1 ile Yazdır" #: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 msgctxt "@title:window" @@ -3434,372 +3866,568 @@ msgctxt "@title:window" msgid "Engine Log" msgstr "Motor Günlüğü" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:201 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 msgctxt "@label" msgid "Material" msgstr "Malzeme" -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:236 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "Malzeme uyumunu denetle" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 msgctxt "@tooltip" msgid "Click to check the material compatibility on Ultimaker.com." msgstr "Malzemenin uyumluluğunu Ultimaker.com üzerinden kontrol etmek için tıklayın." -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:325 -msgctxt "@label" -msgid "Profile:" -msgstr "Profil:" - -#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 -msgctxt "@tooltip" -msgid "" -"Some setting/override values are different from the values stored in the profile.\n" -"\n" -"Click to open the profile manager." -msgstr "" -"Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n" -"\n" -"Profil yöneticisini açmak için tıklayın." - #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" -msgstr "" +msgstr "Makine ayarlarının değiştirilmesini sağlar (yapı hacmi, nozül boyutu vb.)" #: MachineSettingsAction/plugin.json msgctxt "name" msgid "Machine Settings action" -msgstr "" +msgstr "Makine Ayarları eylemi" #: XRayView/plugin.json msgctxt "description" msgid "Provides the X-Ray view." -msgstr "" +msgstr "Röntgen Görüntüsü sağlar." #: XRayView/plugin.json msgctxt "name" msgid "X-Ray View" -msgstr "" +msgstr "Röntgen Görüntüsü" #: X3DReader/plugin.json msgctxt "description" msgid "Provides support for reading X3D files." -msgstr "" +msgstr "X3D dosyalarının okunması için destek sağlar." #: X3DReader/plugin.json msgctxt "name" msgid "X3D Reader" -msgstr "" +msgstr "X3D Okuyucu" #: GCodeWriter/plugin.json msgctxt "description" msgid "Writes GCode to a file." -msgstr "" +msgstr "GCode’u dosyaya yazar." #: GCodeWriter/plugin.json msgctxt "name" msgid "GCode Writer" -msgstr "" +msgstr "GCode Yazıcı" #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "description" msgid "Dump the contents of all settings to a HTML file." -msgstr "" +msgstr "Tüm ayarların içeriklerini bir HTML dosyasına aktarır." #: cura-god-mode-plugin/src/GodMode/plugin.json msgctxt "name" msgid "God Mode" -msgstr "" +msgstr "Tanrı Modu" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "G-Code’u kabul eder ve WiFi üzerinden Doodle3D WiFi-Box'a gönderir." + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" #: ChangeLogPlugin/plugin.json msgctxt "description" msgid "Shows changes since latest checked version." -msgstr "" +msgstr "Son kontrol edilen versiyondan bu yana yapılan değişiklikleri gösterir." #: ChangeLogPlugin/plugin.json msgctxt "name" msgid "Changelog" -msgstr "" +msgstr "Değişiklik Günlüğü" #: ProfileFlattener/plugin.json msgctxt "description" msgid "Create a flattend quality changes profile." -msgstr "" +msgstr "Düzleştirilmiş kalitede değişiklik profili oluşturur." #: ProfileFlattener/plugin.json msgctxt "name" msgid "Profile flatener" -msgstr "" +msgstr "Profil düzleştirici" #: USBPrinting/plugin.json msgctxt "description" msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." -msgstr "" +msgstr "G-Code’ları kabul eder ve bir yazıcıya gönderir. Eklenti aynı zamanda üretici sürümünü güncelleyebilir." #: USBPrinting/plugin.json msgctxt "name" msgid "USB printing" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "description" -msgid "Provides support for writing X3G files" -msgstr "" - -#: X3GWriter/plugin.json -msgctxt "name" -msgid "X3G Writer" -msgstr "" +msgstr "USB yazdırma" #: RemovableDriveOutputDevice/plugin.json msgctxt "description" msgid "Provides removable drive hotplugging and writing support." -msgstr "" +msgstr "Çıkarılabilir sürücünün takılıp çıkarılmasını ve yazma desteği sağlar." #: RemovableDriveOutputDevice/plugin.json msgctxt "name" msgid "Removable Drive Output Device Plugin" -msgstr "" +msgstr "Çıkarılabilir Sürücü Çıkış Cihazı Eklentisi" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers" -msgstr "" +msgstr "Ultimaker 3 yazıcıları için ağ bağlantılarını yönetir" #: UM3NetworkPrinting/plugin.json msgctxt "name" msgid "UM3 Network Connection" -msgstr "" +msgstr "UM3 Ağ Bağlantısı" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "UM3 Ağ Bağlantısı (Küme)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "Bellenim güncellemelerini denetler." + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "Bellenim Güncelleme Denetleyicisi" #: CuraSolidWorksPlugin/plugin.json msgctxt "description" msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" -msgstr "" +msgstr "Belirli dosyaları SolidWorks üzerinden açma imkanı sağlar. Bu dosyalar dönüştürülür ve Cura’ya yüklenir" #: CuraSolidWorksPlugin/plugin.json msgctxt "name" msgid "SolidWorks Integration" -msgstr "" +msgstr "SolidWorks Entegrasyonu" #: PostProcessingPlugin/plugin.json msgctxt "description" msgid "Extension that allows for user created scripts for post processing" -msgstr "" +msgstr "Kullanıcının oluşturduğu komut dosyalarına son işleme için izin veren uzantı" #: PostProcessingPlugin/plugin.json msgctxt "name" msgid "Post Processing" -msgstr "" +msgstr "Son İşleme" #: AutoSave/plugin.json msgctxt "description" msgid "Automatically saves Preferences, Machines and Profiles after changes." -msgstr "" +msgstr "Değişikliklerden sonra Tercihleri, Makineleri ve Profilleri otomatik olarak kaydeder." #: AutoSave/plugin.json msgctxt "name" msgid "Auto Save" -msgstr "" +msgstr "Otomatik Kaydet" #: SliceInfoPlugin/plugin.json msgctxt "description" msgid "Submits anonymous slice info. Can be disabled through preferences." -msgstr "" +msgstr "Anonim dilim bilgisi gönderir. Tercihlerden devre dışı bırakılabilir." #: SliceInfoPlugin/plugin.json msgctxt "name" msgid "Slice info" -msgstr "" +msgstr "Dilim bilgisi" #: XmlMaterialProfile/plugin.json msgctxt "description" msgid "Provides capabilities to read and write XML-based material profiles." -msgstr "" +msgstr "XML tabanlı malzeme profillerini okuma ve yazma olanağı sağlar." #: XmlMaterialProfile/plugin.json msgctxt "name" msgid "Material Profiles" -msgstr "" +msgstr "Malzeme Profilleri" #: LegacyProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from legacy Cura versions." -msgstr "" +msgstr "Eski Cura sürümlerinden profilleri içe aktarmak için destek sağlar." #: LegacyProfileReader/plugin.json msgctxt "name" msgid "Legacy Cura Profile Reader" -msgstr "" +msgstr "Eski Cura Profil Okuyucu" #: GCodeProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing profiles from g-code files." -msgstr "" +msgstr "G-code dosyalarından profilleri içe aktarmak için destek sağlar." #: GCodeProfileReader/plugin.json msgctxt "name" msgid "GCode Profile Reader" -msgstr "" +msgstr "GCode Profil Okuyucu" #: LayerView/plugin.json msgctxt "description" msgid "Provides the Layer view." -msgstr "" +msgstr "Katman görünümü sağlar." #: LayerView/plugin.json msgctxt "name" msgid "Layer View" -msgstr "" +msgstr "Katman Görünümü" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." -msgstr "" +msgstr "Yapılandırmaları Cura 2.5’ten Cura 2.6’ya yükseltir." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "" +msgstr "2.5’ten 2.6’ya Sürüm Yükseltme" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "Yapılandırmaları Cura 2.7’den Cura 3.0’a yükseltir." + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "2.7’den 3.0’a Sürüm Yükseltme" #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." -msgstr "" +msgstr "Yapılandırmaları Cura 2.6’dan Cura 2.7’ye yükseltir." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "" +msgstr "2.6’dan 2.7’ye Sürüm Yükseltme" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." -msgstr "" +msgstr "Yapılandırmaları Cura 2.1’den Cura 2.2’ye yükseltir." #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "name" msgid "Version Upgrade 2.1 to 2.2" -msgstr "" +msgstr "2.1’den 2.2’ye Sürüm Yükseltme" #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." -msgstr "" +msgstr "Yapılandırmaları Cura 2.2’den Cura 2.4’e yükseltir." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "" +msgstr "2.2’den 2.4’e Sürüm Yükseltme" #: ImageReader/plugin.json msgctxt "description" msgid "Enables ability to generate printable geometry from 2D image files." -msgstr "" +msgstr "2D resim dosyasından yazdırılabilir geometri oluşturulmasını sağlar." #: ImageReader/plugin.json msgctxt "name" msgid "Image Reader" -msgstr "" +msgstr "Resim Okuyucu" #: CuraEngineBackend/plugin.json msgctxt "description" msgid "Provides the link to the CuraEngine slicing backend." -msgstr "" +msgstr "CuraEngine arka dilimleme ucuna bağlantı sağlar." #: CuraEngineBackend/plugin.json msgctxt "name" msgid "CuraEngine Backend" -msgstr "" +msgstr "CuraEngine Arka Uç" #: PerObjectSettingsTool/plugin.json msgctxt "description" msgid "Provides the Per Model Settings." -msgstr "" +msgstr "Model Başına Ayarları sağlar." #: PerObjectSettingsTool/plugin.json msgctxt "name" msgid "Per Model Settings Tool" -msgstr "" +msgstr "Model Başına Ayarlar Aracı" #: 3MFReader/plugin.json msgctxt "description" msgid "Provides support for reading 3MF files." -msgstr "" +msgstr "3MF dosyalarının okunması için destek sağlar." #: 3MFReader/plugin.json msgctxt "name" msgid "3MF Reader" -msgstr "" +msgstr "3MF Okuyucu" #: PluginBrowser/plugin.json msgctxt "description" msgid "Find, manage and install new plugins." -msgstr "" +msgstr "Yeni eklentileri bulur, yönetir ve yükler." #: PluginBrowser/plugin.json msgctxt "name" msgid "Plugin Browser" -msgstr "" +msgstr "Eklenti Tarayıcısı" #: SolidView/plugin.json msgctxt "description" msgid "Provides a normal solid mesh view." -msgstr "" +msgstr "Normal gerçek bir ağ görünümü sağlar." #: SolidView/plugin.json msgctxt "name" msgid "Solid View" -msgstr "" +msgstr "Gerçek Görünüm" #: GCodeReader/plugin.json msgctxt "description" msgid "Allows loading and displaying G-code files." -msgstr "" +msgstr "G-code dosyalarının yüklenmesine ve görüntülenmesine olanak tanır." #: GCodeReader/plugin.json msgctxt "name" msgid "G-code Reader" -msgstr "" +msgstr "G-code Okuyucu" #: CuraProfileWriter/plugin.json msgctxt "description" msgid "Provides support for exporting Cura profiles." -msgstr "" +msgstr "Cura profillerinin dışa aktarılması için destek sağlar." #: CuraProfileWriter/plugin.json msgctxt "name" msgid "Cura Profile Writer" -msgstr "" +msgstr "Cura Profili Yazıcı" #: 3MFWriter/plugin.json msgctxt "description" msgid "Provides support for writing 3MF files." -msgstr "" +msgstr "3MF dosyalarının yazılması için destek sağlar." #: 3MFWriter/plugin.json msgctxt "name" msgid "3MF Writer" -msgstr "" +msgstr "3MF Yazıcı" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -msgstr "" +msgstr "Ultimaker makineleri için makine eylemleri sunar (yatak dengeleme sihirbazı, yükseltme seçme vb.)" #: UltimakerMachineActions/plugin.json msgctxt "name" msgid "Ultimaker machine actions" -msgstr "" +msgstr "Ultimaker makine eylemleri" #: CuraProfileReader/plugin.json msgctxt "description" msgid "Provides support for importing Cura profiles." -msgstr "" +msgstr "Cura profillerinin içe aktarılması için destek sağlar." #: CuraProfileReader/plugin.json msgctxt "name" msgid "Cura Profile Reader" -msgstr "" +msgstr "Cura Profil Okuyucu" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "X-Ray" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "G-Code’u kabul eder ve WiFi üzerinden Doodle3D WiFi-Box'a gönderir." + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Doodle3D yazdırma" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "Doodle3D ile yazdır" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "Şununla yazdır:" + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "Tarama aygıtlarını etkinleştir..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "X3G Dosyası" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "Çıkarılabilir Sürücüye Kaydediliyor {0}" + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "{0}na kaydedilemedi: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "SolidWorks dosyanızı tekrar manuel olarak açmanız gerektiğini unutmayın! Modeli yeniden yüklemek işe yaramayacaktır!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "Katmanlar" + +#~ msgid "Browse plugins" +#~ msgstr "Eklentilere göz at" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "Katı" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "Dosya {0} zaten mevcut. Üstüne yazmak istediğinizden emin misiniz?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "Profilin {0}na aktarımı başarısız oldu: {1}" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "Profilin {0}na aktarımı başarısız oldu: Yazıcı uzantı hata bildirdi." + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "Profil {0}na aktarıldı" + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "{0}dan profil içe aktarımı başarısız oldu: {1}" + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Doodle3D Ayarları" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "Şuraya yazdır: %1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "Ekstruder Sıcaklığı: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "Yatak Sıcaklığı: %1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "Görüntüleme Modu: Katmanlar" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "Malzeme aktarılamadı %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "Malzeme başarıyla aktarıldı %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "Malzemenin dışa aktarımı başarısız oldu %1: %2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "Malzeme başarıyla dışa aktarıldı %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "Sıcak uç" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "Görüntüleme Modu" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "Yazdır" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "%0" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "Boş dolgu, modelinizin içinin boş ve düşük dayanımlı olmasına neden olacaktır." + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "%20" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "Hafif (%20) dolgu, modelinize ortalama bir dayanıklılık verecektir." + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "%50" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "Yoğun (%50) dolgu, modelinize ortalamanın üstünde bir dayanıklılık verecektir." + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "%100" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "Katı (%100) dolgu, modelinizi tamamen katı bir hale getirecektir." + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "Kademeli" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "X3G dosyalarının yazılması için destek sağlar" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G Yazıcı" #~ msgctxt "@label" #~ msgid "Machine Settings action" diff --git a/resources/i18n/tr/fdmextruder.def.json.po b/resources/i18n/tr_TR/fdmextruder.def.json.po similarity index 96% rename from resources/i18n/tr/fdmextruder.def.json.po rename to resources/i18n/tr_TR/fdmextruder.def.json.po index 3b13a7b04d..c1ffae36d3 100644 --- a/resources/i18n/tr/fdmextruder.def.json.po +++ b/resources/i18n/tr_TR/fdmextruder.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-08-11 14:30+0200\n" "Last-Translator: Bothof \n" "Language-Team: Turkish\n" -"Language: Turkish\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: tr\n" -"Country-Code: TR\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -41,12 +39,12 @@ msgstr "Yazdırma için kullanılan ekstruder dişli çark. Çoklu ekstrüzyon i #: fdmextruder.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Nozül Kimliği" #: fdmextruder.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Ekstruder dişli çarkı için nozül kimliği, “AA 0.4” ve “BB 0.8” gibi." #: fdmextruder.def.json msgctxt "machine_nozzle_size label" diff --git a/resources/i18n/tr/fdmprinter.def.json.po b/resources/i18n/tr_TR/fdmprinter.def.json.po similarity index 88% rename from resources/i18n/tr/fdmprinter.def.json.po rename to resources/i18n/tr_TR/fdmprinter.def.json.po index 5134d15143..b67557a126 100644 --- a/resources/i18n/tr/fdmprinter.def.json.po +++ b/resources/i18n/tr_TR/fdmprinter.def.json.po @@ -2,21 +2,19 @@ # Copyright (C) 2017 Ultimaker # This file is distributed under the same license as the Cura package. # Ruben Dulek , 2017. -# +# msgid "" msgstr "" -"Project-Id-Version: Cura 2.7\n" +"Project-Id-Version: Cura 3.0\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-08-02 16:53+0000\n" -"PO-Revision-Date: 2017-06-07 16:04+0200\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" "Last-Translator: Bothof \n" "Language-Team: Turkish\n" -"Language: Turkish\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Lang-Code: tr\n" -"Country-Code: TR\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -41,7 +39,7 @@ msgstr "3B yazıcı modelinin adı." #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -msgstr "" +msgstr "Makine Varyantlarını Göster" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -58,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" -"​\n" -" ile ayrılan, başlangıçta yürütülecek G-code komutları." +msgstr "​\n ile ayrılan, başlangıçta yürütülecek G-code komutları." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" -"​\n" -" ile ayrılan, bitişte yürütülecek Gcode komutları." +msgstr "​\n ile ayrılan, bitişte yürütülecek Gcode komutları." #: fdmprinter.def.json msgctxt "material_guid label" @@ -89,7 +83,7 @@ msgstr "Malzemedeki GUID Otomatik olarak ayarlanır. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -msgstr "" +msgstr "Yapı Levhasının Isınmasını Bekle" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +93,7 @@ msgstr "Yapı levhası sıcaklığı başlangıca ulaşana kadar bekleme komutu #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -msgstr "" +msgstr "Nozülün Isınmasını Bekle" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,7 +103,7 @@ msgstr "Yapı levhası sıcaklığı başlangıca ulaşana kadar bekleyip beklem #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -msgstr "" +msgstr "Malzeme Sıcaklıklarını Ekle" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -119,7 +113,7 @@ msgstr "Gcode başlangıcında nozül sıcaklık komutlarını ekleyip eklememe. #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -msgstr "" +msgstr "Yapı Levhası Sıcaklığını Ekle" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -129,7 +123,7 @@ msgstr "Gcode başlangıcında yapı levhası sıcaklık komutlarını ekleyip e #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -msgstr "" +msgstr "Makine Genişliği" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,7 +133,7 @@ msgstr "Yazdırılabilir alan genişliği (X yönü)." #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -msgstr "" +msgstr "Makine Derinliği" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -149,7 +143,7 @@ msgstr "Yazdırılabilir alan derinliği (Y yönü)." #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -msgstr "" +msgstr "Yapı Levhası Şekli" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -169,7 +163,7 @@ msgstr "Eliptik" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -msgstr "" +msgstr "Makine Yüksekliği" #: fdmprinter.def.json msgctxt "machine_height description" @@ -179,7 +173,7 @@ msgstr "Yazdırılabilir alan yüksekliği (Z yönü)." #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -msgstr "" +msgstr "Isıtılmış Yapı Levhası İçerir" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -189,7 +183,7 @@ msgstr "Makinenin mevcut yapı levhasını ısıtıp ısıtmadığı." #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -msgstr "" +msgstr "Merkez Nokta" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -309,17 +303,17 @@ msgstr "Oluşturulacak gcode türü." #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -msgstr "" +msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" msgid "Marlin (Volumetric)" -msgstr "" +msgstr "Marlin (Volümetrik)" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -msgstr "" +msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" @@ -404,12 +398,12 @@ msgstr "Nozül ucu ve portal sistemi (X ve Y aksları) arasındaki yükseklik fa #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -msgstr "" +msgstr "Nozül Kimliği" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "" +msgstr "Ekstruder dişli çarkı için nozül kimliği, “AA 0.4” ve “BB 0.8” gibi." #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -654,12 +648,12 @@ msgstr "En dış duvar haricindeki tüm duvar hatları için tek bir duvar hatt #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -msgstr "" +msgstr "Üst Yüzey Hat Genişliği" #: fdmprinter.def.json msgctxt "roofing_line_width description" msgid "Width of a single line of the areas at the top of the print." -msgstr "" +msgstr "Baskının üst tarafında bulunan alanlardaki tek bir hattın genişliği." #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -744,12 +738,12 @@ msgstr "Tek bir ilk direk hattının genişliği." #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -msgstr "" +msgstr "İlk Katman Hat Genişliği" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." -msgstr "" +msgstr "İlk katman üzerinde bulunan hat genişliği çoğaltıcı. Çoğaltmayı artırmak yatak yapışmasını iyileştirebilir." #: fdmprinter.def.json msgctxt "shell label" @@ -761,35 +755,25 @@ msgctxt "shell description" msgid "Shell" msgstr "Kovan" -#: fdmprinter.def.json -msgctxt "wall_extruder_nr label" -msgid "Wall Extruder" -msgstr "" - -#: fdmprinter.def.json -msgctxt "wall_extruder_nr description" -msgid "The extruder train used for printing the walls. This is used in multi-extrusion." -msgstr "" - #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -msgstr "" +msgstr "Dış Duvar Ekstruderi" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." -msgstr "" +msgstr "Dış Duvarı yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -msgstr "" +msgstr "İç Duvar Ekstruderi" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." -msgstr "" +msgstr "İç duvarları yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -799,7 +783,7 @@ msgstr "Duvar Kalınlığı" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "Yatay yönde duvar kalınlığı. Bu değer duvar hattı genişliğiyle bölündüğünde duvar sayısını belirler." #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -824,67 +808,67 @@ msgstr "Z dikişini daha iyi gizlemek için dış duvardan sonra eklenen hareket #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -msgstr "" +msgstr "Üst Yüzey Ekstruderi" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." -msgstr "" +msgstr "En üstteki yüzeyi yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -msgstr "" +msgstr "Üst Yüzey Katmanları" #: fdmprinter.def.json msgctxt "roofing_layer_count description" msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." -msgstr "" +msgstr "En üstteki yüzey katmanlarının sayısı. Yüksek kalitede üst yüzeyler oluşturmak için genellikle tek bir üst yüzey katmanı yeterlidir." #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -msgstr "" +msgstr "Üst Yüzey Şekli" #: fdmprinter.def.json msgctxt "roofing_pattern description" msgid "The pattern of the top most layers." -msgstr "" +msgstr "En üst yüzeyin şekli." #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -msgstr "" +msgstr "Çizgiler" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Eş merkezli" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zikzak" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -msgstr "" +msgstr "Üst Yüzey Hat Yönleri" #: fdmprinter.def.json msgctxt "roofing_angles description" msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "Üst yüzey katmanları çizgi veya zikzak biçimindeyken kullanılacak tam sayı hat yönü listesi. Listedeki öğeler, katmanlar ilerledikçe sıralı olarak kullanılır. Listenin sonuna ulaşıldığında tekrar başa dönülür. Liste öğeleri virgülle ayrılır ve tüm liste köşeli parantez içine alınır. Varsayılan ayar boş listedir ve geleneksel varsayılan açılar (45 ve 135 derece) kullanılır." #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -msgstr "" +msgstr "Üst/Alt Ekstruderi" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." -msgstr "" +msgstr "Üst ve alt yüzeyi yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -1079,12 +1063,12 @@ msgstr "Her bölüm" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -msgstr "" +msgstr "İnce Duvarları Yazdır" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" msgid "Print pieces of the model which are horizontally thinner than the nozzle size." -msgstr "" +msgstr "Yatay olarak nozül boyutundan daha ince olan model parçalarını yazdırır." #: fdmprinter.def.json msgctxt "xy_offset label" @@ -1099,12 +1083,12 @@ msgstr "Her katmandaki poligonlara uygulanan ofset miktarı. Pozitif değerler b #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -msgstr "" +msgstr "İlk Katmanın Yatay Genişlemesi" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." -msgstr "" +msgstr "İlk katmandaki tüm poligonlara uygulanan ofset miktarı. Negatif bir değer “fil ayağı” olarak bilinen ilk katman ezilmesini dengeleyebilir." #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -1131,6 +1115,11 @@ msgctxt "z_seam_type option random" msgid "Random" msgstr "Gelişigüzel" +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "En Keskin Köşe" + #: fdmprinter.def.json msgctxt "z_seam_x label" msgid "Z Seam X" @@ -1151,15 +1140,45 @@ msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." msgstr "Bir katmandaki her kısmın yazdırılmaya başlanacağı yere yakın konumun Y koordinatı." +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "Dikiş Köşesi Tercihi" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "Modelin ana hatlarında yer alan köşelerin dikişin konumunu etkileyip etkilemediğini kontrol edin. Hiçbiri, köşelerin dikişin konumunu etkilemediği anlamına gelir. Dikişi Gizle, dikişin daha büyük olasılıkla bir iç köşe üzerinde oluşmasını sağlar. Dikişi Açığa Çıkar, dikişin daha büyük olasılıkla bir dış köşe üzerinde oluşmasını sağlar. Dikişi Gizle veya Açığa Çıkar, dikişin daha büyük olasılıkla bir iç veya dış köşe üzerinde oluşmasını sağlar." + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "Hiçbiri" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "Dikişi Gizle" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "Dikişi Açığa Çıkar" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "Dikişi Gizle veya Açığa Çıkar" + #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -msgstr "" +msgstr "Z Dikişi Göreliliği" #: fdmprinter.def.json msgctxt "z_seam_relative description" msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." -msgstr "" +msgstr "Etkin olduğunda, z dikişi koordinatları her parçanın merkezine göre hizalıdır. Devre dışı olduğunda, koordinatlar yapı levhası üzerinde mutlak bir pozisyonu belirtir." #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1171,6 +1190,16 @@ msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." msgstr "Modelde küçük dikey açıklıklar varsa bu dar yerlerdeki üst ve alt yüzeyleri oluşturmak için %5 oranında ek hesaplama süresi verilebilir. Bu gibi bir durumda ayarı devre dışı bırakın." +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Ek Dış Katman Duvar Sayısı" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "Üst/alt şeklin en dıştaki parçasını eş merkezli hatlar ile değiştirir. Bir veya iki hat kullanmak, dolgu malzemesinde başlayan tavanları geliştirir." + #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" @@ -1184,12 +1213,12 @@ msgstr "Dolgu" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -msgstr "" +msgstr "Dolgu Ekstruderi" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" msgid "The extruder train used for printing infill. This is used in multi-extrusion." -msgstr "" +msgstr "Dolgu yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1218,8 +1247,8 @@ msgstr "Dolgu Şekli" #: fdmprinter.def.json msgctxt "infill_pattern description" -msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "Yazdırma dolgu malzemesinin şekli. Hat ve zik zak dolguları alternatif katmanlarda yön değiştirerek malzeme masrafını azaltır Izgara, üçgen, kübik, dört yüzlü ve eş merkezli desenler her katmanda tamamıyla yazdırılır. Her yönde daha eşit dayanıklılık dağılımı sağlamak için küp ve dört yüzlü dolgular her katmanda değişir." +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "Yazdırma dolgu malzemesinin şeklidir. Hat ve zikzak dolgu, farklı katmanlar üzerinde yön değiştirerek malzeme maliyetini azaltır. Izgara, üçgen, kübik, sekizlik, çeyrek kübik ve eş merkezli şekiller, her katmanda tam olarak yazdırılır. Kübik, çeyrek kübik ve sekizlik dolgu, her yönde daha eşit bir kuvvet dağılımı sağlamak için her katmanda değişir." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1248,8 +1277,13 @@ msgstr "Kübik Alt Bölüm" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" -msgid "Tetrahedral" -msgstr "Dört yüzlü" +msgid "Octet" +msgstr "Sekizlik" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "Çeyrek Kübik" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" @@ -1266,6 +1300,26 @@ msgctxt "infill_pattern option zigzag" msgid "Zig Zag" msgstr "Zik Zak" +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "Çapraz" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "Çapraz 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "Dolgu Hatlarını Bağlayın" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "İç duvarın şeklini takip eden bir hattı kullanarak, dolgu şeklinin iç duvarla buluştuğu noktada uçları bağlayın. Bu ayarın etkinleştirilmesi, dolgunun duvarlara daha iyi yapışmasını sağlayabilir ve dolgunun dikey yüzeylerin kalitesi üzerindeki etkilerini azaltır. Bu ayarın devre dışı bırakılması, kullanılan malzemenin miktarını azaltır." + #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" @@ -1314,7 +1368,7 @@ msgstr "Yüzey Çakışma Oranı" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." -msgstr "" +msgstr "Hat genişliğinin bir yüzdesi olarak yüzey ve duvarlar arasındaki çakışma miktarı. Az miktar çakışma duvarların yüzeye sıkıca bağlanmasını sağlar. Bu, yüzey hatlarının ve en içteki duvarın ortalama hat genişliklerinin bir yüzdesidir." #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1387,34 +1441,34 @@ msgid "Don't generate areas of infill smaller than this (use skin instead)." msgstr "Bundan küçük dolgu alanları oluşturma (onun yerine yüzey kullan)." #: fdmprinter.def.json -msgctxt "expand_skins_into_infill label" -msgid "Expand Skins Into Infill" -msgstr "Yüzeyleri Dolguya Genişlet" +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "Yüzey Kaldırma Genişliği" #: fdmprinter.def.json -msgctxt "expand_skins_into_infill description" -msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "Düz zeminlerin üst ve/veya alt yüzeylerinin yüzey alanlarını genişletin. Varsayılan olarak yüzeyler dolguyu çevreleyen duvar çizgilerinin altında sona erer. Ancak bu ayar, dolgu yoğunluğu düşük olduğunda deliklerin görünmesine neden olur. Bu ayar, yüzeyleri duvar çizgisinin ötesine genişleterek sonraki katmandaki dolgunun yüzeye dayanmasını sağlar." +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "Kaldırılacak olan yüzey alanlarının en büyük genişliğidir. Bu değerden daha küçük olan her yüzey alanı kaybolacaktır. Bu, modeldeki eğimli yüzeylerde alt/üst yüzeyin yazdırılması için harcanan süreyi ve malzemeyi sınırlamaya yardımcı olabilir." #: fdmprinter.def.json -msgctxt "expand_upper_skins label" -msgid "Expand Top Skins Into Infill" -msgstr "Üst Yüzey Alanını Dolguya Genişlet" +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "Üst Yüzey Kaldırma Genişliği" #: fdmprinter.def.json -msgctxt "expand_upper_skins description" -msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "Dolguyu yukarıdan desteklemeleri için üst yüzey alanlarını (üzerinde hava bulunan alanları) genişletin." +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "Kaldırılacak olan üst yüzey alanlarının en büyük genişliğidir. Bu değerden daha küçük olan her yüzey alanı kaybolacaktır. Bu, modeldeki eğimli yüzeylerde üst yüzeyin yazdırılması için harcanan süreyi ve malzemeyi sınırlamaya yardımcı olabilir." #: fdmprinter.def.json -msgctxt "expand_lower_skins label" -msgid "Expand Bottom Skins Into Infill" -msgstr "Alt Yüzey Alanını Dolguya Genişlet" +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "Alt Yüzey Kaldırma Genişliği" #: fdmprinter.def.json -msgctxt "expand_lower_skins description" -msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "Dolgu katmanlarını yukarıdan ve aşağıdan desteklemeleri için alt yüzey alanlarını (altında hava bulunan alanları) genişletin." +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "Kaldırılacak olan alt yüzey alanlarının en büyük genişliğidir. Bu değerden daha küçük olan her yüzey alanı kaybolacaktır. Bu, modeldeki eğimli yüzeylerde alt yüzeyin yazdırılması için harcanan süreyi ve malzemeyi sınırlamaya yardımcı olabilir." #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1423,8 +1477,28 @@ msgstr "Yüzey Genişleme Mesafesi" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" -msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "Yüzeylerin dolguya doğru genişleyeceği mesafe. Varsayılan mesafe dolgu hatları arasındaki boşluğu kapatmaya yeterlidir ve dolgu yoğunluğu düşük olduğunda yüzeyin duvara temas ettiği kısımlarda oluşan delikleri önler. Küçük bir mesafe genellikle yeterli olur." +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "Yüzeylerin dolgunun içine doğru genişleyeceği mesafedir. Daha yüksek değerler, yüzeyin dolgu şekline daha iyi tutunmasını sağladığı gibi komşu katmanlardaki duvarların yüzeye daha iyi yapışmasını sağlar. Daha düşük değerler, kullanılan malzemenin miktarından tasarruf yapılmasını sağlar." + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "Üst Yüzey Genişleme Mesafesi" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "Üst yüzeylerin dolgunun içine doğru genişleyeceği mesafedir. Daha yüksek değerler, yüzeyin dolgu şekline daha iyi tutunmasını sağladığı gibi yukarıdaki katmandaki duvarların yüzeye daha iyi yapışmasını sağlar. Daha düşük değerler, kullanılan malzemenin miktarından tasarruf yapılmasını sağlar." + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "Alt Yüzey Genişleme Mesafesi" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "Alt yüzeylerin dolgunun içine doğru genişleyeceği mesafedir. Daha yüksek değerler, yüzeyin dolgu şekline daha iyi tutunmasını sağladığı gibi yüzeyin aşağıdaki katmandaki duvara daha iyi yapışmasını sağlar. Daha düşük değerler, kullanılan malzemenin miktarından tasarruf yapılmasını sağlar." #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1789,12 +1863,12 @@ msgstr "Tüm iç duvarların yazdırıldığı hız. İç duvarları dış duvar #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -msgstr "" +msgstr "Üst Yüzey Hızı" #: fdmprinter.def.json msgctxt "speed_roofing description" msgid "The speed at which top surface skin layers are printed." -msgstr "" +msgstr "Üst yüzey katmanların yazdırıldığı hız." #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1806,16 +1880,6 @@ msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." msgstr "Üst/alt katmanların yazdırıldığı hız." -#: fdmprinter.def.json -msgctxt "speed_ironing label" -msgid "Ironing Speed" -msgstr "" - -#: fdmprinter.def.json -msgctxt "speed_ironing description" -msgid "The speed at which to pass over the top surface." -msgstr "" - #: fdmprinter.def.json msgctxt "speed_support label" msgid "Support Speed" @@ -2029,12 +2093,12 @@ msgstr "İç duvarların yazdırıldığı ivme." #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -msgstr "" +msgstr "Üst Yüzey İvmesi" #: fdmprinter.def.json msgctxt "acceleration_roofing description" msgid "The acceleration with which top surface skin layers are printed." -msgstr "" +msgstr "Üst yüzey katmanların yazdırıldığı ivme." #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -2046,16 +2110,6 @@ msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." msgstr "Üst/alt katmanların yazdırıldığı ivme." -#: fdmprinter.def.json -msgctxt "acceleration_ironing label" -msgid "Ironing Acceleration" -msgstr "" - -#: fdmprinter.def.json -msgctxt "acceleration_ironing description" -msgid "The acceleration with which ironing is performed." -msgstr "" - #: fdmprinter.def.json msgctxt "acceleration_support label" msgid "Support Acceleration" @@ -2229,12 +2283,12 @@ msgstr "Tüm iç duvarların yazdırıldığı maksimum anlık hız değişimi." #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -msgstr "" +msgstr "Üst Yüzey İvmesi Değişimi" #: fdmprinter.def.json msgctxt "jerk_roofing description" msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." -msgstr "" +msgstr "Üst yüzey katmanların yazdırıldığı maksimum anlık hız değişimi." #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2246,16 +2300,6 @@ msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." msgstr "Üst/alt katmanların yazdırıldığı maksimum anlık hız değişimi." -#: fdmprinter.def.json -msgctxt "jerk_ironing label" -msgid "Ironing Jerk" -msgstr "" - -#: fdmprinter.def.json -msgctxt "jerk_ironing description" -msgid "The maximum instantaneous velocity change while performing ironing." -msgstr "" - #: fdmprinter.def.json msgctxt "jerk_support label" msgid "Support Jerk" @@ -2771,6 +2815,11 @@ msgctxt "support_pattern option zigzag" msgid "Zig Zag" msgstr "Zik Zak" +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "Çapraz" + #: fdmprinter.def.json msgctxt "support_connect_zigzags label" msgid "Connect Support ZigZags" @@ -2783,23 +2832,33 @@ msgstr "Zikzakları Bağla Zik zak destek yapısının sağlamlığını artır #: fdmprinter.def.json msgctxt "support_skip_some_zags label" -msgid "Skip Some ZigZags Connections" -msgstr "" +msgid "Break Up Support In Chunks" +msgstr "Parçalarda Döküm Desteği" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" -msgid "Skip some ZigZags connections to make the support structure easier to break." -msgstr "" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "Destek yapısının daha kolay kırılması için bazı destek hattı bağlantılarını atlayın. Bu ayar, Zikzak destek dolgusu şekli için geçerlidir." + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "Destek Parçasının Boyutu" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "Destek yapısının daha kolay kırılması için her N milimetresinde bir destek hatları arasında bağlantı atlayın." #: fdmprinter.def.json msgctxt "support_zag_skip_count label" -msgid "ZigZag Connection Skip Count" -msgstr "" +msgid "Support Chunk Line Count" +msgstr "Destek Parçası Hattı Sayısı" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" -msgid "Skip one in every N connection lines to make the support structure easier to break." -msgstr "" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "Destek yapısının daha kolay kırılması için her N bağlantı hattında bir zikzak atlayın." #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2934,32 +2993,32 @@ msgstr "Her katmandaki tüm destek poligonlarına uygulanan ofset miktarı. Pozi #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -msgstr "" +msgstr "Destek Dolgusu Katmanı Kalınlığı" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "Her katmandaki destek dolgusu malzemesinin kalınlığı. Bu değer her zaman katman yüksekliğinin bir katı olmalıdır, aksi takdirde değer yuvarlanır." #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -msgstr "" +msgstr "Kademeli Destek Dolgusu Aşamaları" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "" +msgstr "Üst yüzeylerin altına inerken destek dolgusu yoğunluğunu yarıya indirmek için inilecek yüzey sayısı. Üst yüzeylere daha yakın olan alanlarda yoğunluk daha fazladır ve Destek Dolgusu Yoğunluğuna kadar çıkabilir." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -msgstr "" +msgstr "Aşamalı Destek Dolgusu Basamak Yüksekliği" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" msgid "The height of support infill of a given density before switching to half the density." -msgstr "" +msgstr "Yoğunluğun yarısına inmeden önce belirli bir yoğunluktaki destek dolgusunun yüksekliği." #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -3341,9 +3400,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" -"Etek ve baskının ilk katmanı arasındaki yatay mesafe.\n" -"Bu minimum mesafedir ve çoklu etek hatları bu mesafeden dışa doğru genişleyecektir." +msgstr "Etek ve baskının ilk katmanı arasındaki yatay mesafe.\nBu minimum mesafedir ve çoklu etek hatları bu mesafeden dışa doğru genişleyecektir." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3385,6 +3442,26 @@ msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." msgstr "Sadece modelin dış kısmındaki kenarı yazdırır. Yatak yapışmasını büyük oranda azaltmasa da daha sonra kaldırmanız gereken kenar sayısını azaltır." +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "İlk Katman Z Ofseti" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "Ekstrüder, birinci katmanın normal yüksekliğinden bu miktarda mesafe bırakılır. Negatif (yükseltilmiş) veya pozitif (alçaltılmış) olabilir. Ekstrüderin hafifçe yükseltilmesi durumunda, bazı filaman türleri yapı levhasına daha iyi yapışır." + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Z Ofseti Konik Katmanları" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "Sıfır olmadığında, Z ofseti birçok katman üzerinde 0’a düşürülür. 0 değeri, Z ofsetinin yazdırmada yer alan tüm katmanlarda sabit kalması anlamına gelir." + #: fdmprinter.def.json msgctxt "raft_margin label" msgid "Raft Extra Margin" @@ -3395,6 +3472,16 @@ msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." msgstr "Radye etkinleştirildiğinde, ayrıca radye verilen model etrafındaki ek radye alanıdır. Bu boşluğu artırmak, daha fazla malzeme kullanırken ve yazdırma için daha az alan bırakırken daha sağlam bir radye oluşturacaktır." +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Radye Düzeltme" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "Bu ayar, radye ana hattında yer alan iç köşelerin ne kadar yuvarlandığını kontrol eder. İç köşeler, burada belirtilen değere eşit yarıçapa sahip yarım daire şeklinde yuvarlanır. Ayrıca bu ayar, söz konusu daireden daha küçük olan radye ana hattındaki delikleri ortadan kaldırır." + #: fdmprinter.def.json msgctxt "raft_airgap label" msgid "Raft Air Gap" @@ -3778,12 +3865,12 @@ msgstr "Ekstruderi değiştirdikten sonra ilk nesne yazdırıldığında nozüld #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -msgstr "" +msgstr "İlk Direk Temizleme Hacmi" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." -msgstr "" +msgstr "İlk direk silinirken temizlenecek olan filaman miktarı. Temizleme işlemi, nozül aktif değilken sızarak kaybolan filamanı dengelemeye yarar." #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -4070,6 +4157,16 @@ msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." msgstr "Z dikişinin görünürlüğünü azaltmak için helezon şeklinde konturları düzeltin (Z-dikişi yazdırma durumunda çok az görünür olmalı, ancak tabaka görünümünde halen görünür olmalıdır). Düzeltme işleminin ince yüzey detaylarında bulanıklığa neden olabileceğini unutmayınız." +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "Bağıl Ekstrüzyon" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "Mutlak ekstrüzyon yerine bağıl ekstrüzyon uygulayın. Bağıl E-adımlarının uygulanması, Gcode’un sonradan işlenmesini kolaylaştırır. Ancak bu, tüm yazıcılar tarafından desteklenmemektedir ve mutlak E-adımları ile karşılaştırıldığında birikmiş malzemenin miktarında hafif farklılıklar yaratabilir. Bu ayara bakılmaksızın, herhangi bir Gcode komut dosyası çıkartılmadan önce ekstrüzyon modu her zaman mutlak değere ayarlı olacaktır." + #: fdmprinter.def.json msgctxt "experimental label" msgid "Experimental" @@ -4080,6 +4177,16 @@ msgctxt "experimental description" msgid "experimental!" msgstr "deneysel!" +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "Duvar Yazdırma Sırasını Optimize Et" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "Geri çekmelerin sayısını ve kat edilen mesafeyi azaltmak için duvarların yazdırıldığı sırayı optimize edin. Çoğu parça, bunun etkinleştirilmesinden yararlanır, ancak bazılarının yararlanması için gerçekte daha uzun bir süre gerekebilir. Bu yüzden, yazdırma süresi tahminlerini optimizasyonlu ve optimizasyonsuz olarak karşılaştırın." + #: fdmprinter.def.json msgctxt "draft_shield_enabled label" msgid "Enable Draft Shield" @@ -4190,16 +4297,6 @@ msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." msgstr "Ekstrüzyon yolu hızına göre tarama sırasındaki hareket hızı. Tarama hareketi sırasında bowden tüpündeki basınç düştüğü için değerin %100’ün altında olması öneriliyor." -#: fdmprinter.def.json -msgctxt "skin_outline_count label" -msgid "Extra Skin Wall Count" -msgstr "Ek Dış Katman Duvar Sayısı" - -#: fdmprinter.def.json -msgctxt "skin_outline_count description" -msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "Üst/alt şeklin en dıştaki parçasını eş merkezli hatlar ile değiştirir. Bir veya iki hat kullanmak, dolgu malzemesinde başlayan tavanları geliştirir." - #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" msgid "Alternate Skin Rotation" @@ -4210,6 +4307,26 @@ msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." msgstr "Üst/alt katmanların yazdırıldığı yönü değiştirin. Normal koşullarda sadece çapraz şekilde yazdırılırlar. Bu ayar sadece-X ve sadece-Y yönlerini ekler." +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "Çapraz 3D Cebin Boyutu" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "Şeklin kendisine temas ettiği yüksekliklerde, çapraz 3D şekilde dört yönlü kesişme yerlerinde bulunan ceplerin boyutudur." + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "Çapraz 3D Cepleri Değiştir" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "Cepleri sadece çapraz 3D şekildeki dört yönlü kesişme yerlerinin yarısında uygulayın ve şeklin kendisine temas ettiği yüksekliklerin arasında ceplerin yerini değiştirin." + #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" @@ -4223,12 +4340,12 @@ msgstr "Filamanın nesnenin içinde düzensiz bir şekilde yukarı doğru kıvr #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -msgstr "" +msgstr "Spagetti Dolgu Adımları" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." -msgstr "" +msgstr "Spagetti dolgusunu adım adım yazdırma veya tüm dolgu filamanını yazdırma işleminin sonunda ekstrude etme." #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -4273,12 +4390,12 @@ msgstr "Spagetti dolgusunun yoğunluğunu ayarlar. Dolgu yoğunluğunun spagetti #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -msgstr "" +msgstr "Spagetti Dolgu Ekstra Hacmi" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." -msgstr "" +msgstr "Her spagetti dolumunda ekstrude edilen toplam hacmi ayarlamak için kullanılan bir düzeltme terimi." #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -4510,9 +4627,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\n" -"Bu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." +msgstr "Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\nBu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4622,62 +4737,102 @@ msgstr "Nozül ve aşağı yöndeki hatlar arasındaki mesafe. Daha büyük aç #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -msgstr "" +msgstr "Ütülemeyi Etkinleştir" #: fdmprinter.def.json msgctxt "ironing_enabled description" msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." -msgstr "" +msgstr "Malzeme ekstrude edilmeden önce üst yüzey üzerinden bir kere daha geçilir. Bu işlem en üstte bulunan plastiği eriterek daha pürüzsüz bir yüzey elde etmek için kullanılır." + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "Sadece En Yüksek Katmanı Ütüle" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "Ütüleme işlemini bileşimin sadece en son katmanı üzerinde gerçekleştirin. Bu, alt katmanlarda pürüzsüz bir yüzey tesviyesine gerek olmadığı durumlarda zaman kazandırır." #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -msgstr "" +msgstr "Ütüleme Modeli" #: fdmprinter.def.json msgctxt "ironing_pattern description" msgid "The pattern to use for ironing top surfaces." -msgstr "" +msgstr "Üst yüzeyleri ütülemek için kullanılacak model." #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -msgstr "" +msgstr "Eş merkezli" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -msgstr "" +msgstr "Zikzak" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -msgstr "" +msgstr "Ütüleme Hattı Boşluğu" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" msgid "The distance between the lines of ironing." -msgstr "" +msgstr "Ütüleme hatları arasında bulunan mesafe." #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -msgstr "" +msgstr "Ütüleme Akışı" #: fdmprinter.def.json msgctxt "ironing_flow description" msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." -msgstr "" +msgstr "Ütüleme sırasında normal yüzey hattına göre ekstrude edilecek malzeme miktarı. Nozülü dolu tutmak üst yüzeyde oluşan çatlakların bir kısmının doldurulmasını sağlar fakat nozülün fazla dolu olması aşırı ekstrüzyona ve yüzey yanlarında noktalar oluşmasına neden olur." #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -msgstr "" +msgstr "Ütüleme İlave Mesafesi" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "" +msgstr "Modelin kenarlarından bırakılması gereken mesafe. Ağın kenarlarına kadar ütülemek baskınızın kenarlarının pürüzlü olmasına neden olabilir." + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "Ütüleme Hızı" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "Üst yüzeyi geçmek için gereken süre." + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "Ütüleme İvmesi" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "Ütülemenin gerçekleştiği ivme." + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "Ütüleme İvmesi Değişimi" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "Ütüleme sırasında oluşan maksimum anlık hız değişimi." #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4739,6 +4894,66 @@ msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." msgstr "Modeli dosyadan indirirken modele uygulanacak olan dönüşüm matrisi" +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "Duvar Ekstruderi" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "Duvarları yazdırmak için kullanılan ekstruder dişli çarkı. Çoklu ekstrüzyon işlemi için kullanılır." + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "Yazdırma dolgu malzemesinin şekli. Hat ve zik zak dolguları alternatif katmanlarda yön değiştirerek malzeme masrafını azaltır Izgara, üçgen, kübik, dört yüzlü ve eş merkezli desenler her katmanda tamamıyla yazdırılır. Her yönde daha eşit dayanıklılık dağılımı sağlamak için küp ve dört yüzlü dolgular her katmanda değişir." + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "Dört yüzlü" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "Yüzeyleri Dolguya Genişlet" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "Düz zeminlerin üst ve/veya alt yüzeylerinin yüzey alanlarını genişletin. Varsayılan olarak yüzeyler dolguyu çevreleyen duvar çizgilerinin altında sona erer. Ancak bu ayar, dolgu yoğunluğu düşük olduğunda deliklerin görünmesine neden olur. Bu ayar, yüzeyleri duvar çizgisinin ötesine genişleterek sonraki katmandaki dolgunun yüzeye dayanmasını sağlar." + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "Üst Yüzey Alanını Dolguya Genişlet" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "Dolguyu yukarıdan desteklemeleri için üst yüzey alanlarını (üzerinde hava bulunan alanları) genişletin." + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "Alt Yüzey Alanını Dolguya Genişlet" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "Dolgu katmanlarını yukarıdan ve aşağıdan desteklemeleri için alt yüzey alanlarını (altında hava bulunan alanları) genişletin." + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "Yüzeylerin dolguya doğru genişleyeceği mesafe. Varsayılan mesafe dolgu hatları arasındaki boşluğu kapatmaya yeterlidir ve dolgu yoğunluğu düşük olduğunda yüzeyin duvara temas ettiği kısımlarda oluşan delikleri önler. Küçük bir mesafe genellikle yeterli olur." + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "Bazı Zikzak Bağlantılarını Atla" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "Destek yapısının daha kolay kırılması için bazı Zikzak bağlantılarını atlayın." + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "Atlanan Zikzak Bağlantısı Sayısı" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "Destek yapısının daha kolay kırılması için her N bağlantı hattında bir zikzak atlayın." + #~ msgctxt "machine_show_variants label" #~ msgid "Show machine variants" #~ msgstr "Makine varyantlarını göster" @@ -4901,4 +5116,4 @@ msgstr "Modeli dosyadan indirirken modele uygulanacak olan dönüşüm matrisi" #~ msgctxt "multiple_mesh_overlap label" #~ msgid "Dual Extrusion Overlap" -#~ msgstr "İkili Ekstrüzyon Çakışması" +#~ msgstr "İkili Ekstrüzyon Çakışması" \ No newline at end of file diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po new file mode 100644 index 0000000000..092ce5120b --- /dev/null +++ b/resources/i18n/zh_CN/cura.po @@ -0,0 +1,4729 @@ +# Cura +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 3.0\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-08-02 16:53+0000\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" +"Last-Translator: Bothof \n" +"Language-Team: PCDotFan , Bothof \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 1.7.3\n" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Print aborted" +msgstr "打印已中止" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Blocked" +msgstr "冻结操作" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Action required" +msgstr "需要采取行动" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label:status" +msgid "Can't start print" +msgstr "不能开始打印" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机。" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "完成时间:" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "这台打印机是一组共 %1 台已连接 Ultimaker 3 打印机的主机。" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "打印机 '{printer_name}' 完成了打印任务 '{job_name}'。" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "打印完成" + +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "插件" + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "浏览插件..." + +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "已安装插件..." + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 +msgctxt "@action" +msgid "Machine Settings" +msgstr "打印机设置" + +#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 +msgctxt "@item:inlistbox" +msgid "X-Ray view" +msgstr "透视视图" + +#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:13 +msgctxt "@item:inlistbox" +msgid "X3D File" +msgstr "X3D 文件" + +#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:16 +msgctxt "@item:inlistbox" +msgid "GCode File" +msgstr "GCode 文件" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:65 +msgctxt "@action:button" +msgid "Print with Doodle3D WiFi-Box" +msgstr "使用 Doodle3D WiFi-Box 打印" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:66 +msgctxt "@properties:tooltip" +msgid "Print with Doodle3D WiFi-Box" +msgstr "使用 Doodle3D WiFi-Box 打印" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:86 +msgctxt "@info:status" +msgid "Connecting to Doodle3D Connect" +msgstr "连接至 Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:87 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:155 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:840 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:822 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:428 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:367 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:78 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:99 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:371 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:139 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "取消" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:154 +msgctxt "@info:status" +msgid "Sending data to Doodle3D Connect" +msgstr "发送数据至 Doodle3D Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:161 +msgctxt "@info:status" +msgid "Unable to send data to Doodle3D Connect. Is another job still active?" +msgstr "无法发送数据至 Doodle3D Connect。 是否有另一项作业仍在进行?" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:175 +msgctxt "@info:status" +msgid "Storing data on Doodle3D Connect" +msgstr "在 Doodle3D Connect 中存储数据" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:213 +msgctxt "@info:status" +msgid "File sent to Doodle3D Connect" +msgstr "已发送至 Doodle3D Connect 的文件" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@action:button" +msgid "Open Connect.." +msgstr "打开 Connect" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D/D3DCloudPrintOutputDevicePlugin.py:214 +msgctxt "@info:tooltip" +msgid "Open the Doodle3D Connect web interface" +msgstr "打开 Doodle3D Connect Web 界面" + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 +msgctxt "@item:inmenu" +msgid "Show Changelog" +msgstr "显示更新日志" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 +msgctxt "@item:inmenu" +msgid "Flatten active settings" +msgstr "合并有效设置" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 +msgctxt "@info:status" +msgid "Profile has been flattened & activated." +msgstr "配置文件已被合并并激活。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 +msgctxt "@item:inmenu" +msgid "USB printing" +msgstr "USB 联机打印" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:27 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Print via USB" +msgstr "通过 USB 联机打印" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:28 +msgctxt "@info:tooltip" +msgid "Print via USB" +msgstr "通过 USB 联机打印" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:30 +msgctxt "@info:status" +msgid "Connected via USB" +msgstr "通过 USB 连接" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:status" +msgid "Unable to start a new job because the printer is busy or not connected." +msgstr "无法启动新作业,因为打印机处于忙碌状态或未连接。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:title" +msgid "Print Details" +msgstr "打印品详细信息" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:status" +msgid "This printer does not support USB printing because it uses UltiGCode flavor." +msgstr "此打印机不支持通过 USB 打印,因为其使用 UltiGCode 类型的 G-code 文件。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:title" +msgid "USB Printing" +msgstr "USB 打印" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +msgctxt "@info:status" +msgid "Unable to start a new job because the printer does not support usb printing." +msgstr "无法启动新作业,因为该打印机不支持通过 USB 打印。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:909 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1296 +msgctxt "@info:title" +msgid "Warning" +msgstr "警告" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:108 +msgctxt "@info" +msgid "Unable to update firmware because there are no printers connected." +msgstr "无法更新固件,因为没有连接打印机。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +#, python-format +msgctxt "@info" +msgid "Could not find firmware required for the printer at %s." +msgstr "在 %s 无法找到打印机所需的固件。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:122 +msgctxt "@info:title" +msgid "Printer Firmware" +msgstr "打印机固件" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Save to Removable Drive" +msgstr "保存至可移动磁盘" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:24 +#, python-brace-format +msgctxt "@item:inlistbox" +msgid "Save to Removable Drive {0}" +msgstr "保存到可移动磁盘 {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +#, python-brace-format +msgctxt "@info:progress Don't translate the XML tags !" +msgid "Saving to Removable Drive {0}" +msgstr "保存到可移动磁盘 {0} " + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +msgctxt "@info:title" +msgid "Saving" +msgstr "正在保存" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Could not save to {0}: {1}" +msgstr "无法保存到 {0}{1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:118 +#, python-brace-format +msgctxt "@info:status Don't translate the tag {device}!" +msgid "Could not find a file name when trying to write to {device}." +msgstr "尝试写入到 {device} 时找不到文件名。" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:131 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:146 +#, python-brace-format +msgctxt "@info:status" +msgid "Could not save to removable drive {0}: {1}" +msgstr "无法保存到可移动磁盘 {0}:{1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:675 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:683 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:145 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:152 +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1305 +msgctxt "@info:title" +msgid "Error" +msgstr "错误" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "保存到可移动磁盘 {0} :{1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:140 +msgctxt "@info:title" +msgid "File Saved" +msgstr "文件已保存" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +msgctxt "@action:button" +msgid "Eject" +msgstr "弹出" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:141 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "弹出可移动设备 {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +#, python-brace-format +msgctxt "@info:status" +msgid "Ejected {0}. You can now safely remove the drive." +msgstr "已弹出 {0}。现在,您可以安全地拔出磁盘。" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:156 +msgctxt "@info:title" +msgid "Safely Remove Hardware" +msgstr "安全移除硬件" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:158 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to eject {0}. Another program may be using the drive." +msgstr "无法弹出 {0},另一个程序可能正在使用磁盘。" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py:68 +msgctxt "@item:intext" +msgid "Removable Drive" +msgstr "可移动磁盘" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:107 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:49 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Print over network" +msgstr "通过网络打印" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:108 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:108 +msgctxt "@properties:tooltip" +msgid "Print over network" +msgstr "通过网络打印" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:status" +msgid "Access to the printer requested. Please approve the request on the printer" +msgstr "已发送打印机访问请求,请在打印机上批准该请求。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:title" +msgid "Connection status" +msgstr "连接状态" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:158 +msgctxt "@info:status" +msgid "" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:468 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:500 +msgctxt "@info:title" +msgid "Connection Status" +msgstr "连接状态" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 +msgctxt "@action:button" +msgid "Retry" +msgstr "重试" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:159 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:159 +msgctxt "@info:tooltip" +msgid "Re-send the access request" +msgstr "重新发送访问请求" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:161 +msgctxt "@info:status" +msgid "Access to the printer accepted" +msgstr "打印机接受了访问请求" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:162 +msgctxt "@info:status" +msgid "No access to print with this printer. Unable to send print job." +msgstr "无法使用本打印机进行打印,无法发送打印作业。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:72 +msgctxt "@action:button" +msgid "Request Access" +msgstr "请求访问" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:163 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:71 +msgctxt "@info:tooltip" +msgid "Send access request to the printer" +msgstr "向打印机发送访问请求" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:375 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:364 +msgctxt "@info:status" +msgid "Connected over the network. Please approve the access request on the printer." +msgstr "已通过网络连接。请在打印机上接受访问请求。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:382 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:371 +msgctxt "@info:status" +msgid "Connected over the network." +msgstr "已通过网络连接。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:395 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:384 +msgctxt "@info:status" +msgid "Connected over the network. No access to control the printer." +msgstr "已通过网络连接,但没有打印机的控制权限。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:400 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:389 +msgctxt "@info:status" +msgid "Access request was denied on the printer." +msgstr "访问请求在打印机上被拒绝。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:403 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:392 +msgctxt "@info:status" +msgid "Access request failed due to a timeout." +msgstr "访问请求失败(原因:超时)。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:467 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:456 +msgctxt "@info:status" +msgid "The connection with the network was lost." +msgstr "网络连接中断。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:499 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:487 +msgctxt "@info:status" +msgid "The connection with the printer was lost. Check your printer to see if it is connected." +msgstr "与打印机的连接中断,请检查打印机是否已连接。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:649 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:636 +#, python-format +msgctxt "@info:status" +msgid "Unable to start a new print job, printer is busy. Current printer status is %s." +msgstr "打印机无法启动新的打印作业,当前的打印机状态为 %s。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:650 +msgctxt "@info:title" +msgid "Printer Status" +msgstr "打印机状态" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:674 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:660 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to start a new print job. No Printcore loaded in slot {0}" +msgstr "无法启动新的打印作业。插槽 {0} 中未加载打印头。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:682 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:667 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to start a new print job. No material loaded in slot {0}" +msgstr "无法启动新的打印作业。插槽 {0} 中未加载材料。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:676 +#, python-brace-format +msgctxt "@label" +msgid "Not enough material for spool {0}." +msgstr "线轴 {0} 上没有足够的材料。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:702 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:686 +#, python-brace-format +msgctxt "@label" +msgid "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}" +msgstr "不同的打印头(Cura: {0},打印机: 为挤出机 {2} 选择了 {1})" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:716 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:700 +#, python-brace-format +msgctxt "@label" +msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" +msgstr "您为挤出机 {2} 选择了不同的材料(Cura:{0},打印机:{1})" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:724 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:708 +#, python-brace-format +msgctxt "@label" +msgid "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer." +msgstr "打印头 {0} 未正确校准。 需要在打印机上执行 XY 校准。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:729 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:713 +msgctxt "@label" +msgid "Are you sure you wish to print with the selected configuration?" +msgstr "您确定要使用所选配置进行打印吗?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:730 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:714 +msgctxt "@label" +msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." +msgstr "打印机的配置或校准与 Cura 之间不匹配。为了获得最佳打印效果,请务必切换打印头和打印机中插入的材料。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:736 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:720 +msgctxt "@window:title" +msgid "Mismatched configuration" +msgstr "配置不匹配" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:821 +msgctxt "@info:status" +msgid "Sending data to printer" +msgstr "向打印机发送数据" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:839 +msgctxt "@info:title" +msgid "Sending Data" +msgstr "正在发送数据" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:908 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:890 +msgctxt "@info:status" +msgid "Unable to send data to printer. Is another job still active?" +msgstr "无法向打印机发送数据。请确认是否有另一项打印任务仍在进行?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1050 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1034 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 +msgctxt "@label:MonitorStatus" +msgid "Aborting print..." +msgstr "中止打印..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1056 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1040 +msgctxt "@label:MonitorStatus" +msgid "Print aborted. Please check the printer" +msgstr "打印已中止。请检查打印机" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1062 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1046 +msgctxt "@label:MonitorStatus" +msgid "Pausing print..." +msgstr "暂停打印..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1064 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1048 +msgctxt "@label:MonitorStatus" +msgid "Resuming print..." +msgstr "恢复打印..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1216 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1191 +msgctxt "@window:title" +msgid "Sync with your printer" +msgstr "与您的打印机同步" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1218 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1193 +msgctxt "@label" +msgid "Would you like to use your current printer configuration in Cura?" +msgstr "您想在 Cura 中使用当前的打印机配置吗?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1220 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkPrinterOutputDevice.py:1195 +msgctxt "@label" +msgid "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer." +msgstr "打印机上的打印头和/或材料与当前项目中的不同。 为获得最佳打印效果,请始终使用已插入打印机的打印头和材料进行切片。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.py:19 +msgctxt "@action" +msgid "Connect via Network" +msgstr "通过网络连接" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:103 +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." +msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:104 +#, python-brace-format +msgctxt "Count is number of printers." +msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." +msgstr "这台打印机是一组共 {count} 台已连接 Ultimaker 3 打印机的主机。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 +#, python-brace-format +msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." +msgstr "{printer_name} 已完成打印 '{job_name}'。 请收起打印品并确认清空打印平台。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 +#, python-brace-format +msgid "{printer_name} is reserved to print '{job_name}'. Please change the printer's configuration to match the job, for it to start printing." +msgstr "{printer_name} 已保留用于打印 '{job_name}'。 请更改打印机配置以匹配此项作业,以便开始打印。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:196 +msgctxt "@info:status" +msgid "Sending new jobs (temporarily) blocked, still sending the previous print job." +msgstr "发送新作业(暂时)受阻,仍在发送前一份打印作业。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:212 +msgctxt "@info:status" +msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." +msgstr "无法发送新打印作业:此 3D 打印机(尚)未设置为运行一组连接的 Ultimaker 3 打印机。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:425 +#, python-brace-format +msgctxt "@info:progress" +msgid "Sending {file_name} to group {cluster_name}" +msgstr "发送 {file_name} 至组 {cluster_name}" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:498 +#, python-brace-format +msgctxt "@info:status" +msgid "Sent {file_name} to group {cluster_name}." +msgstr "已发送 {file_name} 至组 {cluster_name}。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:503 +msgctxt "@action:button" +msgid "Show print jobs" +msgstr "显示打印作业" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:504 +msgctxt "@info:tooltip" +msgid "Opens the print jobs interface in your browser." +msgstr "在您的浏览器中打开打印作业界面。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:520 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to send print job to group {cluster_name}." +msgstr "无法发送打印作业至组 {cluster_name}。" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:71 +#, python-brace-format +msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" +msgid "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB." +msgstr "为确保您的 {machine_name} 具备最新功能,建议定期更新固件。 更新可在 {machine_name} 上(连接至网络时)或通过 USB 进行。" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:72 +#, python-format +msgctxt "@info:title The %s gets replaced with the printer name." +msgid "New %s firmware available" +msgstr "新 %s 固件可用" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:73 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:149 +msgctxt "@action:button" +msgid "Download" +msgstr "下载" + +#: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:83 +msgctxt "@info" +msgid "Could not access update information." +msgstr "无法获取更新信息。" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/SolidWorksReader.py:199 +msgctxt "@info:status" +msgid "Errors appeared while opening your SolidWorks file! Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" +msgstr "打开 SolidWorks 文件时发生错误! 请检查能否在 SolidWorks 中正常打开文件而不出现任何问题!" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:31 +msgctxt "@item:inlistbox" +msgid "SolidWorks part file" +msgstr "SolidWorks 零件文件" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/__init__.py:35 +msgctxt "@item:inlistbox" +msgid "SolidWorks assembly file" +msgstr "SolidWorks 组件文件" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.py:21 +msgid "Configure" +msgstr "配置" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/CommonComReader.py:135 +#, python-format +msgctxt "@info:status" +msgid "Error while starting %s!" +msgstr "启动 %s 时发生错误!" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 +msgid "Modify G-Code" +msgstr "修改 G-Code 文件" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:43 +msgctxt "@info" +msgid "Cura collects anonymised slicing statistics. You can disable this in the preferences." +msgstr "Cura 收集匿名切片统计资料。 您可以在偏好设置中禁用此选项。" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:46 +msgctxt "@info:title" +msgid "Collecting Data" +msgstr "正在收集数据" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 +msgctxt "@action:button" +msgid "Dismiss" +msgstr "关闭此通知" + +#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:14 +msgctxt "@item:inlistbox" +msgid "Cura 15.04 profiles" +msgstr "Cura 15.04 配置文件" + +#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:14 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:14 +msgctxt "@item:inlistbox" +msgid "G-code File" +msgstr "GCode 文件" + +#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 +msgctxt "@item:inlistbox" +msgid "Layer view" +msgstr "分层视图" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 +msgctxt "@info:status" +msgid "Cura does not accurately display layers when Wire Printing is enabled" +msgstr "当单线打印(Wire Printing)功能开启时,Cura 将无法准确地显示打印层(Layers)" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:94 +msgctxt "@info:title" +msgid "Layer View" +msgstr "分层视图" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 +msgctxt "@item:inlistbox" +msgid "JPG Image" +msgstr "JPG 图像" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:18 +msgctxt "@item:inlistbox" +msgid "JPEG Image" +msgstr "JPEG 图像" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:22 +msgctxt "@item:inlistbox" +msgid "PNG Image" +msgstr "PNG 图像" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:26 +msgctxt "@item:inlistbox" +msgid "BMP Image" +msgstr "BMP 图像" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:30 +msgctxt "@item:inlistbox" +msgid "GIF Image" +msgstr "GIF 图像" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +msgctxt "@info:status" +msgid "Unable to slice with the current material as it is incompatible with the selected machine or configuration." +msgstr "无法使用当前材料进行切片,因为该材料与所选机器或配置不兼容。" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:269 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:297 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:307 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:title" +msgid "Unable to slice" +msgstr "无法切片" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:296 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to slice with the current settings. The following settings have errors: {0}" +msgstr "无法使用当前设置进行切片。以下设置存在错误:{0}" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:306 +msgctxt "@info:status" +msgid "Unable to slice because the prime tower or prime position(s) are invalid." +msgstr "无法切片(原因:主塔或主位置无效)。" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:315 +msgctxt "@info:status" +msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." +msgstr "无法执行,因为没有一个模型符合成形空间体积。请缩放或旋转模型以适应打印平台。" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:65 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:status" +msgid "Processing Layers" +msgstr "正在处理层" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:title" +msgid "Information" +msgstr "信息" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 +msgctxt "@label" +msgid "Per Model Settings" +msgstr "单一模型设置" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:15 +msgctxt "@info:tooltip" +msgid "Configure Per Model Settings" +msgstr "设置对每个模型的单独设定" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:475 +msgctxt "@title:tab" +msgid "Recommended" +msgstr "推荐" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:480 +msgctxt "@title:tab" +msgid "Custom" +msgstr "自定义" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:30 +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:36 +msgctxt "@item:inlistbox" +msgid "3MF File" +msgstr "3MF 文件" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:123 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1062 +msgctxt "@label" +msgid "Nozzle" +msgstr "喷嘴" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:28 +msgctxt "@menuitem" +msgid "Browse plugins" +msgstr "浏览插件" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:163 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to get plugin ID from {0}" +msgstr "无法从 {0} 获取插件 ID" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:164 +msgctxt "@info:tile" +msgid "Warning" +msgstr "警告" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.py:202 +msgctxt "@window:title" +msgid "Plugin browser" +msgstr "插件浏览器" + +#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 +msgctxt "@item:inmenu" +msgid "Solid view" +msgstr "实体视图" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:18 +msgctxt "@item:inlistbox" +msgid "G File" +msgstr "G 文件" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:254 +msgctxt "@info:status" +msgid "Parsing G-code" +msgstr "解析 G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:256 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:370 +msgctxt "@info:title" +msgid "G-code Details" +msgstr "G-code 详细信息" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:368 +msgctxt "@info:generic" +msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." +msgstr "发送文件之前,请确保 G-code 适用于当前打印机和打印机配置。当前 G-code 文件可能不准确。" + +#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:14 +#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:14 +msgctxt "@item:inlistbox" +msgid "Cura Profile" +msgstr "Cura 配置文件" + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:30 +msgctxt "@item:inlistbox" +msgid "3MF file" +msgstr "3MF 文件" + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:38 +msgctxt "@item:inlistbox" +msgid "Cura Project 3MF file" +msgstr "Cura 项目 3MF 文件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 +msgctxt "@action" +msgid "Select upgrades" +msgstr "选择升级" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py:12 +msgctxt "@action" +msgid "Upgrade Firmware" +msgstr "升级固件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py:14 +msgctxt "@action" +msgid "Checkup" +msgstr "检查" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.py:15 +msgctxt "@action" +msgid "Level build plate" +msgstr "调平打印平台" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:88 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "外壁" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:89 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "内壁" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:90 +msgctxt "@tooltip" +msgid "Skin" +msgstr "表层" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:91 +msgctxt "@tooltip" +msgid "Infill" +msgstr "填充" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:92 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "支撑填充" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:93 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "支撑接触面" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:94 +msgctxt "@tooltip" +msgid "Support" +msgstr "支撑" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:95 +msgctxt "@tooltip" +msgid "Skirt" +msgstr "Skirt" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:96 +msgctxt "@tooltip" +msgid "Travel" +msgstr "移动" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:97 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "回抽" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:98 +msgctxt "@tooltip" +msgid "Other" +msgstr "其它" + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:259 +#, python-brace-format +msgctxt "@label" +msgid "Pre-sliced file {0}" +msgstr "预切片文件 {0}" + +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:463 +msgctxt "@item:material" +msgid "No material loaded" +msgstr "未加载材料" + +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:470 +msgctxt "@item:material" +msgid "Unknown material" +msgstr "未知材料" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:30 +msgctxt "@info:status" +msgid "Finding new location for objects" +msgstr "正在为模型寻找新位置" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:34 +msgctxt "@info:title" +msgid "Finding Location" +msgstr "正在寻找位置" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:89 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:status" +msgid "Unable to find a location within the build volume for all objects" +msgstr "无法在成形空间体积内放下全部模型" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:90 +msgctxt "@info:title" +msgid "Can't Find Location" +msgstr "找不到位置" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:431 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 +msgctxt "@title:window" +msgid "File Already Exists" +msgstr "文件已存在" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:432 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 +#, python-brace-format +msgctxt "@label Don't translate the XML tag !" +msgid "The file {0} already exists. Are you sure you want to overwrite it?" +msgstr "文件 {0} 已存在。 您确定要替换它吗?" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:815 +msgctxt "@label" +msgid "Custom" +msgstr "自定义" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:819 +msgctxt "@label" +msgid "Custom Material" +msgstr "自定义材料" + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:108 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "所选材料与所选机器或配置不兼容。" + +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:109 +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:title" +msgid "Incompatible Material" +msgstr "" + +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:24 +msgctxt "@info:status Has a cancel button next to it." +msgid "The selected material diameter causes the material to become incompatible with the current printer." +msgstr "所选材料直径导致材料与当前打印机不兼容。" + +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 +msgctxt "@action:button" +msgid "Undo" +msgstr "撤销" + +#: /home/ruben/Projects/Cura/cura/Settings/MaterialManager.py:25 +msgctxt "@action" +msgid "Undo changing the material diameter." +msgstr "撤销更改材料直径。" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to export profile to {0}: {1}" +msgstr "无法将配置文件导出至 {0} {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:150 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tag !" +msgid "Failed to export profile to {0}: Writer plugin reported failure." +msgstr "无法将配置文件导出至 {0} : 写入器插件报告故障。" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:155 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tag !" +msgid "Exported profile to {0}" +msgstr "配置文件已导出至: {0} " + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:156 +msgctxt "@info:title" +msgid "Export Details" +msgstr "导出详细信息" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:182 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:204 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:213 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:247 +#, python-brace-format +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Failed to import profile from {0}: {1}" +msgstr "无法从 {0} 导入配置文件: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:215 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:251 +#, python-brace-format +msgctxt "@info:status" +msgid "Successfully imported profile {0}" +msgstr "已成功导入配置文件 {0}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:254 +#, python-brace-format +msgctxt "@info:status" +msgid "Profile {0} has an unknown file type or is corrupted." +msgstr "配置 {0} 文件类型未知或已损坏。" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:272 +msgctxt "@label" +msgid "Custom profile" +msgstr "自定义配置文件" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:283 +msgctxt "@info:status" +msgid "Profile is missing a quality type." +msgstr "配置文件缺少打印质量类型定义。" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:313 +#, python-brace-format +msgctxt "@info:status" +msgid "Could not find a quality type {0} for the current configuration." +msgstr "无法为当前配置找到质量类型 {0}。" + +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:100 +msgctxt "@info:status" +msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." +msgstr "由于“打印序列”设置的值,成形空间体积高度已被减少,以防止十字轴与打印模型相冲突。" + +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:102 +msgctxt "@info:title" +msgid "Build Volume" +msgstr "成形空间体积" + +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 +msgctxt "@info:status" +msgid "Multiplying and placing objects" +msgstr "复制并放置模型" + +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:35 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:title" +msgid "Placing Object" +msgstr "放置模型" + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 +msgctxt "@title:window" +msgid "Crash Report" +msgstr "错误报告" + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 +msgctxt "@label" +msgid "" +"

A fatal exception has occurred that we could not recover from!

\n" +"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" +" " +msgstr "

发生了致命错误,我们无法恢复!

\n

请在以下网址中使用下方的信息提交错误报告:http://github.com/Ultimaker/Cura/issues

" + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 +msgctxt "@action:button" +msgid "Open Web Page" +msgstr "打开网页" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:251 +msgctxt "@info:progress" +msgid "Loading machines..." +msgstr "正在载入打印机..." + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:619 +msgctxt "@info:progress" +msgid "Setting up scene..." +msgstr "正在设置场景..." + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:661 +msgctxt "@info:progress" +msgid "Loading interface..." +msgstr "正在载入界面…" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:824 +#, python-format +msgctxt "@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm." +msgid "%(width).1f x %(depth).1f x %(height).1f mm" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1295 +#, python-brace-format +msgctxt "@info:status" +msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" +msgstr "一次只能加载一个 G-code 文件。{0} 已跳过导入" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1304 +#, python-brace-format +msgctxt "@info:status" +msgid "Can't open any other file if G-code is loading. Skipped importing {0}" +msgstr "如果加载 G-code,则无法打开其他任何文件。{0} 已跳过导入" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:59 +msgctxt "@title" +msgid "Machine Settings" +msgstr "打印机设置" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:77 +msgctxt "@title:tab" +msgid "Printer" +msgstr "打印机" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:96 +msgctxt "@label" +msgid "Printer Settings" +msgstr "打印机设置" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:107 +msgctxt "@label" +msgid "X (Width)" +msgstr "X (宽度)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:108 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:118 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:234 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:287 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:299 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:400 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:412 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:839 +msgctxt "@label" +msgid "mm" +msgstr "mm" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:117 +msgctxt "@label" +msgid "Y (Depth)" +msgstr "Y (深度)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:127 +msgctxt "@label" +msgid "Z (Height)" +msgstr "Z (高度)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:139 +msgctxt "@label" +msgid "Build plate shape" +msgstr "打印平台形状" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 +msgctxt "@option:check" +msgid "Origin at center" +msgstr "置中" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:156 +msgctxt "@option:check" +msgid "Heated bed" +msgstr "加热床" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:167 +msgctxt "@label" +msgid "Gcode flavor" +msgstr "GCode 类型" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:180 +msgctxt "@label" +msgid "Printhead Settings" +msgstr "打印头设置" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:190 +msgctxt "@label" +msgid "X min" +msgstr "X 最小值" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:191 +msgctxt "@tooltip" +msgid "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." +msgstr "打印头左侧至喷嘴中心的距离。 用于防止“排队”打印时之前的打印品与打印头发生碰撞。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:200 +msgctxt "@label" +msgid "Y min" +msgstr "Y 最小值" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:201 +msgctxt "@tooltip" +msgid "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." +msgstr "打印头前端至喷嘴中心的距离。 用于防止“排队”打印时之前的打印品与打印头发生碰撞。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:210 +msgctxt "@label" +msgid "X max" +msgstr "X 最大值" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:211 +msgctxt "@tooltip" +msgid "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." +msgstr "打印头右侧至喷嘴中心的距离。 用于防止“排队”打印时之前的打印品与打印头发生碰撞。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:220 +msgctxt "@label" +msgid "Y max" +msgstr "Y 最大值" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 +msgctxt "@tooltip" +msgid "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\"." +msgstr "打印头后部至喷嘴中心的距离。 用于防止“排队”打印时之前的打印品与打印头发生碰撞。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:233 +msgctxt "@label" +msgid "Gantry height" +msgstr "十字轴高度" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:235 +msgctxt "@tooltip" +msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." +msgstr "喷嘴尖端与十字轴系统(X 轴和 Y 轴)之间的高度差。 用于防止“排队”打印时之前的打印品与十字轴发生碰撞。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:254 +msgctxt "@label" +msgid "Number of Extruders" +msgstr "挤出机数目" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:288 +msgctxt "@tooltip" +msgid "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile." +msgstr "打印机所支持耗材的公称直径。 材料和/或配置文件将覆盖精确直径。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:290 +msgctxt "@label" +msgid "Material diameter" +msgstr "材料直径" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:298 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:389 +msgctxt "@label" +msgid "Nozzle size" +msgstr "喷嘴孔径" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:316 +msgctxt "@label" +msgid "Start Gcode" +msgstr "GCode 开始部分" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:326 +msgctxt "@tooltip" +msgid "Gcode commands to be executed at the very start." +msgstr "将在开始时执行的 Gcode 命令。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:335 +msgctxt "@label" +msgid "End Gcode" +msgstr "GCode 结束部分" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:345 +msgctxt "@tooltip" +msgid "Gcode commands to be executed at the very end." +msgstr "将在结束时执行的 Gcode 命令。" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:377 +msgctxt "@label" +msgid "Nozzle Settings" +msgstr "喷嘴设置" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 +msgctxt "@label" +msgid "Nozzle offset X" +msgstr "喷嘴偏移 X" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:411 +msgctxt "@label" +msgid "Nozzle offset Y" +msgstr "喷嘴偏移 Y" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:432 +msgctxt "@label" +msgid "Extruder Start Gcode" +msgstr "挤出机 Gcode 开始部分" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:450 +msgctxt "@label" +msgid "Extruder End Gcode" +msgstr "挤出机 Gcode 结束部分" + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 +msgctxt "@label" +msgid "Changelog" +msgstr "更新日志" + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:107 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:357 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:80 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 +#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 +msgctxt "@action:button" +msgid "Close" +msgstr "关闭" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:22 +msgctxt "@title:window" +msgid "Firmware Update" +msgstr "固件升级" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:42 +msgctxt "@label" +msgid "Firmware update completed." +msgstr "固件更新已完成。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:47 +msgctxt "@label" +msgid "Starting firmware update, this may take a while." +msgstr "正在开始固件更新。可能需要花费一些时间,请耐心等待。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:52 +msgctxt "@label" +msgid "Updating firmware." +msgstr "更新固件中..." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:61 +msgctxt "@label" +msgid "Firmware update failed due to an unknown error." +msgstr "由于未知错误,固件更新失败。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:64 +msgctxt "@label" +msgid "Firmware update failed due to an communication error." +msgstr "由于通信错误,导致固件升级失败。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:67 +msgctxt "@label" +msgid "Firmware update failed due to an input/output error." +msgstr "由于输入/输出错误,导致固件升级失败。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:70 +msgctxt "@label" +msgid "Firmware update failed due to missing firmware." +msgstr "由于固件丢失,导致固件升级失败。" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:73 +msgctxt "@label" +msgid "Unknown error code: %1" +msgstr "未知错误代码: %1" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:55 +msgctxt "@title:window" +msgid "Connect to Networked Printer" +msgstr "连接到网络打印机" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:65 +msgctxt "@label" +msgid "" +"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" +"\n" +"Select your printer from the list below:" +msgstr "要通过网络向打印机发送打印请求,请确保您的打印机已通过网线或 WIFI 连接到网络。若您不能连接 Cura 与打印机,您仍然可以使用 USB 设备将 G-code 文件传输到打印机。\n\n从以下列表中选择您的打印机:" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 +msgctxt "@action:button" +msgid "Add" +msgstr "添加" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:85 +msgctxt "@action:button" +msgid "Edit" +msgstr "编辑" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:190 +msgctxt "@action:button" +msgid "Remove" +msgstr "删除" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:104 +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:35 +msgctxt "@action:button" +msgid "Refresh" +msgstr "刷新" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:196 +msgctxt "@label" +msgid "If your printer is not listed, read the network printing troubleshooting guide" +msgstr "如果您的打印机未列出,请阅读网络打印故障排除指南" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:223 +msgctxt "@label" +msgid "Type" +msgstr "类型" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:235 +msgctxt "@label" +msgid "Ultimaker 3" +msgstr "Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:238 +msgctxt "@label" +msgid "Ultimaker 3 Extended" +msgstr "Ultimaker 3 Extended" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:241 +msgctxt "@label" +msgid "Unknown" +msgstr "未知" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:254 +msgctxt "@label" +msgid "Firmware version" +msgstr "固件版本" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:266 +msgctxt "@label" +msgid "Address" +msgstr "地址" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:297 +msgctxt "@label" +msgid "The printer at this address has not yet responded." +msgstr "该网络地址的打印机尚未响应。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:302 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:38 +msgctxt "@action:button" +msgid "Connect" +msgstr "连接" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:316 +msgctxt "@title:window" +msgid "Printer Address" +msgstr "打印机网络地址" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:346 +msgctxt "@alabel" +msgid "Enter the IP address or hostname of your printer on the network." +msgstr "输入打印机在网络上的 IP 地址或主机名。" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:376 +msgctxt "@action:button" +msgid "Ok" +msgstr "确定" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:37 +msgctxt "@info:tooltip" +msgid "Connect to a printer" +msgstr "连接到打印机" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:116 +msgctxt "@info:tooltip" +msgid "Load the configuration of the printer into Cura" +msgstr "将打印机配置导入 Cura" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/UM3InfoComponents.qml:117 +msgctxt "@action:button" +msgid "Activate Configuration" +msgstr "应用配置" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:284 +msgctxt "@label" +msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" +msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 +msgctxt "@label" +msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" +msgstr "这台打印机是一组 %1 台已连接 Ultimaker 3 打印机的主机" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 +msgctxt "@title:window" +msgid "Print over network" +msgstr "通过网络打印" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:92 +msgctxt "@action:button" +msgid "Print" +msgstr "打印" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:50 +msgctxt "@label: arg 1 is group name" +msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" +msgstr "%1 未设置为运行一组连接的 Ultimaker 3 打印机" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:311 +msgctxt "@label:status" +msgid "Printing" +msgstr "打印" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:315 +msgctxt "@label:status" +msgid "Reserved" +msgstr "保留" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:317 +msgctxt "@label:status" +msgid "Finished" +msgstr "已完成" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:320 +msgctxt "@label:status" +msgid "Preparing" +msgstr "准备" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:327 +msgctxt "@label:status" +msgid "Available" +msgstr "可用" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:367 +msgctxt "@label" +msgid "Completed on: " +msgstr "完成时间: " + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:371 +msgctxt "@label" +msgid "Clear build plate" +msgstr "清空打印平台" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:375 +msgctxt "@label" +msgid "Preparing to print" +msgstr "准备打印" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterMonitorItem.qml:379 +msgctxt "@label" +msgid "Not accepting print jobs" +msgstr "不接受打印作业" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:14 +msgctxt "@info:tooltip" +msgid "Opens the print jobs page with your default web browser." +msgstr "使用默认 Web 浏览器打开打印作业页面。" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/OpenPanelButton.qml:15 +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:154 +msgctxt "@action:button" +msgid "View print jobs" +msgstr "查看打印作业" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:36 +msgctxt "@label" +msgid "PRINTER GROUP" +msgstr "打印机组" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:69 +msgctxt "@title" +msgid "Print jobs" +msgstr "打印作业" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:100 +msgctxt "@label" +msgid "Printing" +msgstr "打印" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:118 +msgctxt "@label" +msgid "Queued" +msgstr "已排队" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:135 +msgctxt "@label" +msgid "Waiting for configuration change" +msgstr "正在等待配置更改" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:194 +msgctxt "@label:title" +msgid "Printers" +msgstr "打印机" + +#: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/ClusterControlItem.qml:247 +msgctxt "@action:button" +msgid "View printers" +msgstr "查看打印机" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:20 +msgctxt "@title:window" +msgid "Cura SolidWorks Plugin Configuration" +msgstr "Cura SolidWorks 插件配置" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:44 +msgctxt "@action:label" +msgid "Default quality of the exported STL:" +msgstr "导出 STL 的默认质量:" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:79 +msgctxt "@option:curaSolidworksStlQuality" +msgid "Always ask" +msgstr "总是询问" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:80 +msgctxt "@option:curaSolidworksStlQuality" +msgid "Always use Fine quality" +msgstr "总是使用精细品质" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:81 +msgctxt "@option:curaSolidworksStlQuality" +msgid "Always use Coarse quality" +msgstr "总是使用粗糙品质" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ConfigDialog.qml:92 +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:88 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:181 +msgctxt "@action:button" +msgid "OK" +msgstr "确定" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:20 +msgctxt "@title:window" +msgid "Import SolidWorks File as STL..." +msgstr "导入 SolidWorks 文件为 STL..." + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:43 +msgctxt "@info:tooltip" +msgid "Quality of the Exported STL" +msgstr "导出 STL 的质量" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:48 +msgctxt "@action:label" +msgid "Quality" +msgstr "质量" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:62 +msgctxt "@option:curaSolidworksStlQuality" +msgid "Coarse" +msgstr "粗糙" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:63 +msgctxt "@option:curaSolidworksStlQuality" +msgid "Fine" +msgstr "精细" + +#: /home/ruben/Projects/Cura/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml:78 +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 +msgctxt "@text:window" +msgid "Remember my choice" +msgstr "记住我的选择" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 +msgctxt "@title:window" +msgid "Post Processing Plugin" +msgstr "后期处理插件" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:49 +msgctxt "@label" +msgid "Post Processing Scripts" +msgstr "后期处理脚本" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:218 +msgctxt "@action" +msgid "Add a script" +msgstr "添加一个脚本" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:264 +msgctxt "@label" +msgid "Settings" +msgstr "设置" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:456 +msgctxt "@info:tooltip" +msgid "Change active post-processing scripts" +msgstr "更改目前启用的后期处理脚本" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:76 +msgctxt "@label" +msgid "Color scheme" +msgstr "颜色方案" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:91 +msgctxt "@label:listbox" +msgid "Material Color" +msgstr "材料颜色" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:95 +msgctxt "@label:listbox" +msgid "Line Type" +msgstr "走线类型" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:135 +msgctxt "@label" +msgid "Compatibility Mode" +msgstr "兼容模式" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:216 +msgctxt "@label" +msgid "Show Travels" +msgstr "显示移动轨迹" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:222 +msgctxt "@label" +msgid "Show Helpers" +msgstr "显示打印辅助结构" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:228 +msgctxt "@label" +msgid "Show Shell" +msgstr "显示外壳" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:234 +msgctxt "@label" +msgid "Show Infill" +msgstr "显示填充" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:283 +msgctxt "@label" +msgid "Only Show Top Layers" +msgstr "只显示顶层" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:292 +msgctxt "@label" +msgid "Show 5 Detailed Layers On Top" +msgstr "在顶部显示 5 层打印细节" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:303 +msgctxt "@label" +msgid "Top / Bottom" +msgstr "顶 / 底层" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:307 +msgctxt "@label" +msgid "Inner Wall" +msgstr "内壁" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 +msgctxt "@title:window" +msgid "Convert Image..." +msgstr "转换图像..." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 +msgctxt "@info:tooltip" +msgid "The maximum distance of each pixel from \"Base.\"" +msgstr "每个像素与底板的最大距离。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 +msgctxt "@action:label" +msgid "Height (mm)" +msgstr "高度 (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:56 +msgctxt "@info:tooltip" +msgid "The base height from the build plate in millimeters." +msgstr "距离打印平台的底板高度,以毫米为单位。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:61 +msgctxt "@action:label" +msgid "Base (mm)" +msgstr "底板 (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:79 +msgctxt "@info:tooltip" +msgid "The width in millimeters on the build plate." +msgstr "打印平台宽度,以毫米为单位。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:84 +msgctxt "@action:label" +msgid "Width (mm)" +msgstr "宽度 (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 +msgctxt "@info:tooltip" +msgid "The depth in millimeters on the build plate" +msgstr "打印平台深度,以毫米为单位。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 +msgctxt "@action:label" +msgid "Depth (mm)" +msgstr "深度 (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:126 +msgctxt "@info:tooltip" +msgid "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." +msgstr "默认情况下,白色像素表示网格上的高点,黑色像素表示网格上的低点。若更改此选项将反其道而行之,相当于图像编辑软件中的「反相」操作。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 +msgctxt "@item:inlistbox" +msgid "Lighter is higher" +msgstr "颜色越浅厚度越大" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 +msgctxt "@item:inlistbox" +msgid "Darker is higher" +msgstr "颜色越深厚度越大" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 +msgctxt "@info:tooltip" +msgid "The amount of smoothing to apply to the image." +msgstr "要应用到图像的平滑量。" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 +msgctxt "@action:label" +msgid "Smoothing" +msgstr "平滑" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:208 +msgctxt "@action:button" +msgid "Select settings" +msgstr "选择设置" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:248 +msgctxt "@title:window" +msgid "Select Settings to Customize for this model" +msgstr "选择对此模型的自定义设置" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:272 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 +msgctxt "@label:textbox" +msgid "Filter..." +msgstr "筛选…" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:296 +msgctxt "@label:checkbox" +msgid "Show all" +msgstr "显示全部" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 +msgctxt "@title:window" +msgid "Open Project" +msgstr "打开项目" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:54 +msgctxt "@action:ComboBox option" +msgid "Update existing" +msgstr "更新已有配置" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:55 +msgctxt "@action:ComboBox option" +msgid "Create new" +msgstr "新建" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:66 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:70 +msgctxt "@action:title" +msgid "Summary - Cura Project" +msgstr "摘要 - Cura 项目" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:88 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:88 +msgctxt "@action:label" +msgid "Printer settings" +msgstr "打印机设置" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:104 +msgctxt "@info:tooltip" +msgid "How should the conflict in the machine be resolved?" +msgstr "机器的设置冲突应如何解决?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:124 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:97 +msgctxt "@action:label" +msgid "Type" +msgstr "类型" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:140 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:197 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:289 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:188 +msgctxt "@action:label" +msgid "Name" +msgstr "名字" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:161 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:164 +msgctxt "@action:label" +msgid "Profile settings" +msgstr "配置文件设置" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:177 +msgctxt "@info:tooltip" +msgid "How should the conflict in the profile be resolved?" +msgstr "配置文件中的冲突如何解决?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:212 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:172 +msgctxt "@action:label" +msgid "Not in profile" +msgstr "不在配置文件中" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:217 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:177 +msgctxt "@action:label" +msgid "%1 override" +msgid_plural "%1 overrides" +msgstr[0] "%1 重写" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:228 +msgctxt "@action:label" +msgid "Derivative from" +msgstr "衍生自" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:233 +msgctxt "@action:label" +msgid "%1, %2 override" +msgid_plural "%1, %2 overrides" +msgstr[0] "%1, %2 重写" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:249 +msgctxt "@action:label" +msgid "Material settings" +msgstr "材料设置" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:265 +msgctxt "@info:tooltip" +msgid "How should the conflict in the material be resolved?" +msgstr "材料的设置冲突应如何解决?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:308 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:207 +msgctxt "@action:label" +msgid "Setting visibility" +msgstr "设置可见性" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:317 +msgctxt "@action:label" +msgid "Mode" +msgstr "模式" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:332 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:216 +msgctxt "@action:label" +msgid "Visible settings:" +msgstr "可见设置:" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:337 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:221 +msgctxt "@action:label" +msgid "%1 out of %2" +msgstr "%1 / %2" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:363 +msgctxt "@action:warning" +msgid "Loading a project will clear all models on the buildplate" +msgstr "加载项目将清除打印平台上的所有模型" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:381 +msgctxt "@action:button" +msgid "Open" +msgstr "打开" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:11 +msgctxt "@title:window" +msgid "Find & Update plugins" +msgstr "查找与更新插件" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:27 +msgctxt "@label" +msgid "Here you can find a list of Third Party plugins." +msgstr "您可以在这里找到第三方插件列表。" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:145 +msgctxt "@action:button" +msgid "Upgrade" +msgstr "升级" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:147 +msgctxt "@action:button" +msgid "Installed" +msgstr "已安装" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:199 +msgctxt "@title:window" +msgid "Plugin License Agreement" +msgstr "插件许可协议" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:220 +msgctxt "@label" +msgid "" +" plugin contains a license.\n" +"You need to accept this license to install this plugin.\n" +"Do you agree with the terms below?" +msgstr " 插件包含一个许可。\n您需要接受此许可才能安装此插件。\n是否同意下列条款?" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:242 +msgctxt "@action:button" +msgid "Accept" +msgstr "接受" + +#: /home/ruben/Projects/Cura/plugins/PluginBrowser/PluginBrowser.qml:253 +msgctxt "@action:button" +msgid "Decline" +msgstr "拒绝" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 +msgctxt "@title" +msgid "Select Printer Upgrades" +msgstr "选择打印机升级" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 +msgctxt "@label" +msgid "Please select any upgrades made to this Ultimaker 2." +msgstr "请选择适用于 Ultimaker 2 的升级文件。" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:45 +msgctxt "@label" +msgid "Olsson Block" +msgstr "Olsson Block" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:27 +msgctxt "@title" +msgid "Build Plate Leveling" +msgstr "打印平台调平" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:38 +msgctxt "@label" +msgid "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." +msgstr "为了确保打印质量出色,您现在可以开始调整您的打印平台。当您点击「移动到下一个位置」时,喷嘴将移动到可以调节的不同位置。" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:47 +msgctxt "@label" +msgid "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." +msgstr "在打印头停止的每一个位置下方插入一张纸,并调整平台高度。当纸张恰好被喷嘴的尖端轻微压住时,此时打印平台的高度已被正确校准。" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:62 +msgctxt "@action:button" +msgid "Start Build Plate Leveling" +msgstr "开始进行打印平台调平" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:74 +msgctxt "@action:button" +msgid "Move to Next Position" +msgstr "移动到下一个位置" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:27 +msgctxt "@title" +msgid "Upgrade Firmware" +msgstr "升级固件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:38 +msgctxt "@label" +msgid "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." +msgstr "固件是直接在 3D 打印机上运行的一个软件。此固件控制步进电机,调节温度并最终使打印机正常工作。" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:48 +msgctxt "@label" +msgid "The firmware shipping with new printers works, but new versions tend to have more features and improvements." +msgstr "新打印机出厂配备的固件完全可以正常使用,但新版本往往具有更多的新功能和改进。" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:62 +msgctxt "@action:button" +msgid "Automatically upgrade Firmware" +msgstr "自动升级固件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:72 +msgctxt "@action:button" +msgid "Upload custom Firmware" +msgstr "上传自定义固件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:83 +msgctxt "@title:window" +msgid "Select custom firmware" +msgstr "选择自定义固件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:37 +msgctxt "@label" +msgid "Please select any upgrades made to this Ultimaker Original" +msgstr "请选择适用于 Ultimaker Original 的升级文件" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:45 +msgctxt "@label" +msgid "Heated Build Plate (official kit or self-built)" +msgstr "热床(官方版本或自制)" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:27 +msgctxt "@title" +msgid "Check Printer" +msgstr "检查打印机" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:39 +msgctxt "@label" +msgid "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" +msgstr "对 Ultimaker 进行几项正确性检查是很好的做法。如果您知道您的机器功能正常,则可跳过此步骤" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:53 +msgctxt "@action:button" +msgid "Start Printer Check" +msgstr "开始打印机检查" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 +msgctxt "@label" +msgid "Connection: " +msgstr "连接:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 +msgctxt "@info:status" +msgid "Connected" +msgstr "已连接" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 +msgctxt "@info:status" +msgid "Not connected" +msgstr "未连接" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 +msgctxt "@label" +msgid "Min endstop X: " +msgstr "X Min 限位开关:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 +msgctxt "@info:status" +msgid "Works" +msgstr "工作" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:173 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 +msgctxt "@info:status" +msgid "Not checked" +msgstr "未检查" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 +msgctxt "@label" +msgid "Min endstop Y: " +msgstr "Y Min 限位开关:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 +msgctxt "@label" +msgid "Min endstop Z: " +msgstr "Z Min 限位开关:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 +msgctxt "@label" +msgid "Nozzle temperature check: " +msgstr "检查喷嘴温度:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 +msgctxt "@action:button" +msgid "Stop Heating" +msgstr "停止加热" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 +msgctxt "@action:button" +msgid "Start Heating" +msgstr "开始加热" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:223 +msgctxt "@label" +msgid "Build plate temperature check:" +msgstr "打印平台温度检查:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 +msgctxt "@info:status" +msgid "Checked" +msgstr "已检查" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:284 +msgctxt "@label" +msgid "Everything is in order! You're done with your CheckUp." +msgstr "一切正常!你已经完成检查。" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:88 +msgctxt "@label:MonitorStatus" +msgid "Not connected to a printer" +msgstr "未连接至打印机" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:90 +msgctxt "@label:MonitorStatus" +msgid "Printer does not accept commands" +msgstr "打印机不接受命令" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:96 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 +msgctxt "@label:MonitorStatus" +msgid "In maintenance. Please check the printer" +msgstr "维护中。请检查打印机" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:101 +msgctxt "@label:MonitorStatus" +msgid "Lost connection with the printer" +msgstr "与打印机的连接中断" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:103 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 +msgctxt "@label:MonitorStatus" +msgid "Printing..." +msgstr "打印中..." + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:106 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 +msgctxt "@label:MonitorStatus" +msgid "Paused" +msgstr "已暂停" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:109 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 +msgctxt "@label:MonitorStatus" +msgid "Preparing..." +msgstr "初始化中..." + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:111 +msgctxt "@label:MonitorStatus" +msgid "Please remove the print" +msgstr "请取出打印件" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:237 +msgctxt "@label:" +msgid "Resume" +msgstr "恢复" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:241 +msgctxt "@label:" +msgid "Pause" +msgstr "暂停" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:270 +msgctxt "@label:" +msgid "Abort Print" +msgstr "中止打印" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:280 +msgctxt "@window:title" +msgid "Abort print" +msgstr "中止打印" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:282 +msgctxt "@label" +msgid "Are you sure you want to abort the print?" +msgstr "您确定要中止打印吗?" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:15 +msgctxt "@title:window" +msgid "Discard or Keep changes" +msgstr "舍弃或保留更改" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:57 +msgctxt "@text:window" +msgid "" +"You have customized some profile settings.\n" +"Would you like to keep or discard those settings?" +msgstr "您已自定义某些配置文件设置。\n您想保留或舍弃这些设置吗?" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 +msgctxt "@title:column" +msgid "Profile settings" +msgstr "配置文件设置" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:117 +msgctxt "@title:column" +msgid "Default" +msgstr "默认" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:124 +msgctxt "@title:column" +msgid "Customized" +msgstr "自定义" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:593 +msgctxt "@option:discardOrKeep" +msgid "Always ask me this" +msgstr "总是询问" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:594 +msgctxt "@option:discardOrKeep" +msgid "Discard and never ask again" +msgstr "舍弃更改,并不再询问此问题" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:595 +msgctxt "@option:discardOrKeep" +msgid "Keep and never ask again" +msgstr "保留更改,并不再询问此问题" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:196 +msgctxt "@action:button" +msgid "Discard" +msgstr "舍弃" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:209 +msgctxt "@action:button" +msgid "Keep" +msgstr "保留" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:222 +msgctxt "@action:button" +msgid "Create New Profile" +msgstr "创建新配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:44 +msgctxt "@title" +msgid "Information" +msgstr "信息" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 +msgctxt "@label" +msgid "Display Name" +msgstr "显示名称" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 +msgctxt "@label" +msgid "Brand" +msgstr "品牌" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:92 +msgctxt "@label" +msgid "Material Type" +msgstr "材料类型" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:105 +msgctxt "@label" +msgid "Color" +msgstr "颜色" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:139 +msgctxt "@label" +msgid "Properties" +msgstr "属性" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:141 +msgctxt "@label" +msgid "Density" +msgstr "密度" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:156 +msgctxt "@label" +msgid "Diameter" +msgstr "直径" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:185 +msgctxt "@label" +msgid "Filament Cost" +msgstr "耗材成本" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:201 +msgctxt "@label" +msgid "Filament weight" +msgstr "耗材重量" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:218 +msgctxt "@label" +msgid "Filament length" +msgstr "耗材长度" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:227 +msgctxt "@label" +msgid "Cost per Meter" +msgstr "每米成本" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:241 +msgctxt "@label" +msgid "This material is linked to %1 and shares some of its properties." +msgstr "此材料与 %1 相关联,并共享其某些属性。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:248 +msgctxt "@label" +msgid "Unlink Material" +msgstr "解绑材料" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:259 +msgctxt "@label" +msgid "Description" +msgstr "描述" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:272 +msgctxt "@label" +msgid "Adhesion Information" +msgstr "粘附信息" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:298 +msgctxt "@label" +msgid "Print settings" +msgstr "打印设置" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 +msgctxt "@title:tab" +msgid "Setting Visibility" +msgstr "设置可见性" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 +msgctxt "@label:textbox" +msgid "Check all" +msgstr "全部勾选" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 +msgctxt "@info:status" +msgid "Calculated" +msgstr "已计算" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 +msgctxt "@title:column" +msgid "Setting" +msgstr "设置" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:60 +msgctxt "@title:column" +msgid "Profile" +msgstr "配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:67 +msgctxt "@title:column" +msgid "Current" +msgstr "当前" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:75 +msgctxt "@title:column" +msgid "Unit" +msgstr "单位" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:436 +msgctxt "@title:tab" +msgid "General" +msgstr "基本" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:128 +msgctxt "@label" +msgid "Interface" +msgstr "接口" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:139 +msgctxt "@label" +msgid "Language:" +msgstr "语言:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:205 +msgctxt "@label" +msgid "Currency:" +msgstr "币种:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:219 +msgctxt "@label" +msgid "Theme:" +msgstr "主题:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:279 +msgctxt "@label" +msgid "You will need to restart the application for these changes to have effect." +msgstr "需重新启动 Cura,新的设置才能生效。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:296 +msgctxt "@info:tooltip" +msgid "Slice automatically when changing settings." +msgstr "当设置被更改时自动进行切片。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:304 +msgctxt "@option:check" +msgid "Slice automatically" +msgstr "自动切片" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:318 +msgctxt "@label" +msgid "Viewport behavior" +msgstr "视区行为" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 +msgctxt "@info:tooltip" +msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." +msgstr "以红色突出显示模型需要增加支撑结构的区域。没有支撑,这些区域将无法正确打印。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:335 +msgctxt "@option:check" +msgid "Display overhang" +msgstr "显示悬垂(Overhang)" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:342 +msgctxt "@info:tooltip" +msgid "Moves the camera so the model is in the center of the view when a model is selected" +msgstr "当模型被选中时,视角将自动调整到最合适的观察位置(模型处于正中央)" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:347 +msgctxt "@action:button" +msgid "Center camera when item is selected" +msgstr "当项目被选中时,自动对中视角" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:356 +msgctxt "@info:tooltip" +msgid "Should the default zoom behavior of cura be inverted?" +msgstr "需要令 Cura 的默认缩放操作反转吗?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:361 +msgctxt "@action:button" +msgid "Invert the direction of camera zoom." +msgstr "反转视角变焦方向。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:370 +msgctxt "@info:tooltip" +msgid "Should zooming move in the direction of the mouse?" +msgstr "是否跟随鼠标方向进行缩放?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:375 +msgctxt "@action:button" +msgid "Zoom toward mouse direction" +msgstr "跟随鼠标方向缩放" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:384 +msgctxt "@info:tooltip" +msgid "Should models on the platform be moved so that they no longer intersect?" +msgstr "需要移动平台上的模型,使它们不再相交吗?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:389 +msgctxt "@option:check" +msgid "Ensure models are kept apart" +msgstr "确保每个模型都保持分离" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:397 +msgctxt "@info:tooltip" +msgid "Should models on the platform be moved down to touch the build plate?" +msgstr "需要转动模型,使它们接触打印平台吗?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:402 +msgctxt "@option:check" +msgid "Automatically drop models to the build plate" +msgstr "自动下降模型到打印平台" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:414 +msgctxt "@info:tooltip" +msgid "Show caution message in gcode reader." +msgstr "在 G-code 读取器中显示警告信息。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:423 +msgctxt "@option:check" +msgid "Caution message in gcode reader" +msgstr "G-code 读取器中的警告信息" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 +msgctxt "@info:tooltip" +msgid "Should layer be forced into compatibility mode?" +msgstr "层视图要强制进入兼容模式吗?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:435 +msgctxt "@option:check" +msgid "Force layer view compatibility mode (restart required)" +msgstr "强制层视图兼容模式(需要重新启动)" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:451 +msgctxt "@label" +msgid "Opening and saving files" +msgstr "打开并保存文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:457 +msgctxt "@info:tooltip" +msgid "Should models be scaled to the build volume if they are too large?" +msgstr "当模型的尺寸过大时,是否将模型自动缩小至成形空间体积?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:462 +msgctxt "@option:check" +msgid "Scale large models" +msgstr "缩小过大模型" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:471 +msgctxt "@info:tooltip" +msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" +msgstr "当模型以米而不是毫米为单位时,模型可能会在打印平台中显得非常小。在此情况下是否进行放大?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:476 +msgctxt "@option:check" +msgid "Scale extremely small models" +msgstr "放大过小模型" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:485 +msgctxt "@info:tooltip" +msgid "Should a prefix based on the printer name be added to the print job name automatically?" +msgstr "打印机名是否自动作为打印作业名称的前缀?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:490 +msgctxt "@option:check" +msgid "Add machine prefix to job name" +msgstr "将机器前缀添加到作业名称中" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:499 +msgctxt "@info:tooltip" +msgid "Should a summary be shown when saving a project file?" +msgstr "保存项目文件时是否显示摘要?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:503 +msgctxt "@option:check" +msgid "Show summary dialog when saving project" +msgstr "保存项目时显示摘要对话框" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 +msgctxt "@info:tooltip" +msgid "Default behavior when opening a project file" +msgstr "打开项目文件时的默认行为" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:520 +msgctxt "@window:text" +msgid "Default behavior when opening a project file: " +msgstr "打开项目文件时的默认行为:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:533 +msgctxt "@option:openProject" +msgid "Always ask" +msgstr "总是询问" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:534 +msgctxt "@option:openProject" +msgid "Always open as a project" +msgstr "始终作为一个项目打开" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:535 +msgctxt "@option:openProject" +msgid "Always import models" +msgstr "始终导入模型" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 +msgctxt "@info:tooltip" +msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." +msgstr "当您对配置文件进行更改并切换到其他配置文件时将显示一个对话框,询问您是否要保留修改。您也可以选择一个默认行为并令其不再显示该对话框。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:580 +msgctxt "@label" +msgid "Override Profile" +msgstr "重写配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:629 +msgctxt "@label" +msgid "Privacy" +msgstr "隐私" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:636 +msgctxt "@info:tooltip" +msgid "Should Cura check for updates when the program is started?" +msgstr "当 Cura 启动时,是否自动检查更新?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 +msgctxt "@option:check" +msgid "Check for updates on start" +msgstr "启动时检查更新" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:651 +msgctxt "@info:tooltip" +msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "您愿意将关于您的打印数据以匿名形式发送到 Ultimaker 吗?注意:我们不会记录/发送任何模型、IP 地址或其他私人数据。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:656 +msgctxt "@option:check" +msgid "Send (anonymous) print information" +msgstr "(匿名)发送打印信息" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:441 +msgctxt "@title:tab" +msgid "Printers" +msgstr "打印机" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:51 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:137 +msgctxt "@action:button" +msgid "Activate" +msgstr "激活" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:57 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:102 +msgctxt "@action:button" +msgid "Rename" +msgstr "重命名" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:151 +msgctxt "@label" +msgid "Printer type:" +msgstr "打印机类型:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:160 +msgctxt "@label" +msgid "Connection:" +msgstr "连接:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:166 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:52 +msgctxt "@info:status" +msgid "The printer is not connected." +msgstr "尚未连接到打印机。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:172 +msgctxt "@label" +msgid "State:" +msgstr "状态:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:192 +msgctxt "@label:MonitorStatus" +msgid "Waiting for someone to clear the build plate" +msgstr "等待清理打印平台" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:201 +msgctxt "@label:MonitorStatus" +msgid "Waiting for a printjob" +msgstr "等待打印作业" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:445 +msgctxt "@title:tab" +msgid "Profiles" +msgstr "配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 +msgctxt "@label" +msgid "Protected profiles" +msgstr "受保护的配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 +msgctxt "@label" +msgid "Custom profiles" +msgstr "自定义配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:64 +msgctxt "@label" +msgid "Create" +msgstr "创建" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:80 +msgctxt "@label" +msgid "Duplicate" +msgstr "复制" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:113 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:201 +msgctxt "@action:button" +msgid "Import" +msgstr "导入" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:212 +msgctxt "@action:button" +msgid "Export" +msgstr "导出" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:126 +msgctxt "@label %1 is printer name" +msgid "Printer: %1" +msgstr "打印机:%1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:165 +msgctxt "@action:button" +msgid "Update profile with current settings/overrides" +msgstr "使用当前设置 / 重写值更新配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:173 +msgctxt "@action:button" +msgid "Discard current changes" +msgstr "舍弃当前更改" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:190 +msgctxt "@action:label" +msgid "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." +msgstr "此配置文件使用打印机指定的默认值,因此在下面的列表中没有此设置项。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:197 +msgctxt "@action:label" +msgid "Your current settings match the selected profile." +msgstr "您当前的设置与选定的配置文件相匹配。" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:215 +msgctxt "@title:tab" +msgid "Global Settings" +msgstr "全局设置" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:258 +msgctxt "@title:window" +msgid "Rename Profile" +msgstr "重命名配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:271 +msgctxt "@title:window" +msgid "Create Profile" +msgstr "创建配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:285 +msgctxt "@title:window" +msgid "Duplicate Profile" +msgstr "复制配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:299 +msgctxt "@window:title" +msgid "Import Profile" +msgstr "导入配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:307 +msgctxt "@title:window" +msgid "Import Profile" +msgstr "导入配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:335 +msgctxt "@title:window" +msgid "Export Profile" +msgstr "导出配置文件" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:443 +msgctxt "@title:tab" +msgid "Materials" +msgstr "材料" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:116 +msgctxt "@action:label %1 is printer name, %2 is how this printer names variants, %3 is variant name" +msgid "Printer: %1, %2: %3" +msgstr "打印机:%1, %2: %3" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:120 +msgctxt "@action:label %1 is printer name" +msgid "Printer: %1" +msgstr "打印机:%1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:149 +msgctxt "@action:button" +msgid "Create" +msgstr "创建" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:168 +msgctxt "@action:button" +msgid "Duplicate" +msgstr "复制" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:319 +msgctxt "@title:window" +msgid "Import Material" +msgstr "导入配置" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:320 +msgctxt "@info:status Don't translate the XML tags or !" +msgid "Could not import material %1: %2" +msgstr "无法导入材料 %1%2" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:324 +msgctxt "@info:status Don't translate the XML tag !" +msgid "Successfully imported material %1" +msgstr "成功导入材料 %1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:343 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:358 +msgctxt "@title:window" +msgid "Export Material" +msgstr "导出材料" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:362 +msgctxt "@info:status Don't translate the XML tags and !" +msgid "Failed to export material to %1: %2" +msgstr "无法导出材料至 %1%2" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:368 +msgctxt "@info:status Don't translate the XML tag !" +msgid "Successfully exported material to %1" +msgstr "成功导出材料至: %1" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:766 +msgctxt "@title:window" +msgid "Add Printer" +msgstr "新增打印机" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:185 +msgctxt "@label" +msgid "Printer Name:" +msgstr "打印机名称:" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:208 +msgctxt "@action:button" +msgid "Add Printer" +msgstr "新增打印机" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 +msgctxt "@title:window" +msgid "About Cura" +msgstr "关于 Cura" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:56 +msgctxt "@label" +msgid "End-to-end solution for fused filament 3D printing." +msgstr "熔丝 3D 打印技术的的端对端解决方案。" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:69 +msgctxt "@info:credit" +msgid "" +"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura proudly uses the following open source projects:" +msgstr "Cura 由 Ultimaker B.V. 与社区合作开发。\nCura 使用以下开源项目:" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 +msgctxt "@label" +msgid "Graphical user interface" +msgstr "图形用户界面" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:119 +msgctxt "@label" +msgid "Application framework" +msgstr "应用框架" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:120 +msgctxt "@label" +msgid "GCode generator" +msgstr "GCode 生成器" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:121 +msgctxt "@label" +msgid "Interprocess communication library" +msgstr "进程间通信交互使用库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:123 +msgctxt "@label" +msgid "Programming language" +msgstr "编程语言" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:124 +msgctxt "@label" +msgid "GUI framework" +msgstr "GUI 框架" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:125 +msgctxt "@label" +msgid "GUI framework bindings" +msgstr "GUI 框架绑定" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:126 +msgctxt "@label" +msgid "C/C++ Binding library" +msgstr "C / C++ 绑定库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:127 +msgctxt "@label" +msgid "Data interchange format" +msgstr "数据交换格式" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 +msgctxt "@label" +msgid "Support library for scientific computing" +msgstr "科学计算支持库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 +msgctxt "@label" +msgid "Support library for faster math" +msgstr "高速运算支持库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:130 +msgctxt "@label" +msgid "Support library for handling STL files" +msgstr "用于处理 STL 文件的支持库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:131 +msgctxt "@label" +msgid "Support library for handling 3MF files" +msgstr "用于处理 3MF 文件的支持库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 +msgctxt "@label" +msgid "Serial communication library" +msgstr "串口通讯库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:133 +msgctxt "@label" +msgid "ZeroConf discovery library" +msgstr "ZeroConf 发现库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:134 +msgctxt "@label" +msgid "Polygon clipping library" +msgstr "多边形剪辑库" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:136 +msgctxt "@label" +msgid "Font" +msgstr "字体" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:137 +msgctxt "@label" +msgid "SVG icons" +msgstr "SVG 图标" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 +msgctxt "@label" +msgid "Profile:" +msgstr "配置文件:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:97 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "某些设置/重写值与存储在配置文件中的值不同。\n\n点击打开配置文件管理器。" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:145 +msgctxt "@label:textbox" +msgid "Search..." +msgstr "搜索..." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:476 +msgctxt "@action:menu" +msgid "Copy value to all extruders" +msgstr "将值复制到所有挤出机" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:491 +msgctxt "@action:menu" +msgid "Hide this setting" +msgstr "隐藏此设置" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:501 +msgctxt "@action:menu" +msgid "Don't show this setting" +msgstr "不再显示此设置" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:505 +msgctxt "@action:menu" +msgid "Keep this setting visible" +msgstr "保持此设置可见" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:524 +msgctxt "@action:menu" +msgid "Configure setting visiblity..." +msgstr "配置设置可见性..." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:123 +msgctxt "@label" +msgid "" +"Some hidden settings use values different from their normal calculated value.\n" +"\n" +"Click to make these settings visible." +msgstr "一些隐藏设置正在使用有别于一般设置的计算值。\n\n单击以使这些设置可见。" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:62 +msgctxt "@label Header for list of settings." +msgid "Affects" +msgstr "影响" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:67 +msgctxt "@label Header for list of settings." +msgid "Affected By" +msgstr "受影响项目:" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:157 +msgctxt "@label" +msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders" +msgstr "此设置始终对所有挤出机有效。在此进行更改将影响所有挤出机。" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:160 +msgctxt "@label" +msgid "The value is resolved from per-extruder values " +msgstr "该值将会根据每一个挤出机的设置而确定" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:186 +msgctxt "@label" +msgid "" +"This setting has a value that is different from the profile.\n" +"\n" +"Click to restore the value of the profile." +msgstr "此设置的值与配置文件不同。\n\n单击以恢复配置文件的值。" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:284 +msgctxt "@label" +msgid "" +"This setting is normally calculated, but it currently has an absolute value set.\n" +"\n" +"Click to restore the calculated value." +msgstr "此设置通常可被自动计算,但其当前已被绝对定义。\n\n单击以恢复自动计算的值。" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 +msgctxt "@label:listbox" +msgid "Print Setup" +msgstr "打印设置" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:118 +msgctxt "@label:listbox" +msgid "" +"Print Setup disabled\n" +"G-code files cannot be modified" +msgstr "打印设置已禁用\nG-code 文件无法被修改" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:326 +msgctxt "@label" +msgid "00h 00min" +msgstr "00 小时 00 分" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:344 +msgctxt "@tooltip" +msgid "Time information" +msgstr "时间信息" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:370 +msgctxt "@description" +msgid "Print time" +msgstr "打印时间" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:409 +msgctxt "@label" +msgid "%1m / ~ %2g / ~ %4 %3" +msgstr "%1m / ~ %2g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:414 +msgctxt "@label" +msgid "%1m / ~ %2g" +msgstr "%1m / ~ %2g" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:476 +msgctxt "@tooltip" +msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." +msgstr "推荐的打印设置

使用针对所选打印机、材料和质量的推荐设置进行打印。" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:481 +msgctxt "@tooltip" +msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." +msgstr "自定义打印设置
对切片过程中的每一个细节进行精细控制。" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:35 +msgctxt "@title:menuitem %1 is the automatically selected material" +msgid "Automatic: %1" +msgstr "自动:%1" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:12 +msgctxt "@title:menu menubar:toplevel" +msgid "&View" +msgstr "视图(&V)" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 +msgctxt "@title:menuitem %1 is the nozzle currently loaded in the printer" +msgid "Automatic: %1" +msgstr "自动: %1" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 +msgctxt "@label" +msgid "Print Selected Model With:" +msgid_plural "Print Selected Models With:" +msgstr[0] "打印所选模型:" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:83 +msgctxt "@title:window" +msgid "Multiply Selected Model" +msgid_plural "Multiply Selected Models" +msgstr[0] "复制所选模型" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:108 +msgctxt "@label" +msgid "Number of Copies" +msgstr "复制个数" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 +msgctxt "@title:menu menubar:file" +msgid "Open &Recent" +msgstr "打开最近使用过的文件(&R)" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:33 +msgctxt "@info:status" +msgid "No printer connected" +msgstr "没有连接打印机" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:157 +msgctxt "@label" +msgid "Extruder" +msgstr "挤出机" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:120 +msgctxt "@tooltip" +msgid "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off." +msgstr "热端的目标温度。 热端将加热或冷却至此温度。 如果目标温度为 0,则热端加热将关闭。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:152 +msgctxt "@tooltip" +msgid "The current temperature of this extruder." +msgstr "该挤出机的当前温度。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:187 +msgctxt "@tooltip" +msgid "The colour of the material in this extruder." +msgstr "该挤出机中材料的颜色。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:219 +msgctxt "@tooltip" +msgid "The material in this extruder." +msgstr "该挤出机中的材料。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:251 +msgctxt "@tooltip" +msgid "The nozzle inserted in this extruder." +msgstr "该挤出机所使用的喷嘴。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:282 +msgctxt "@label" +msgid "Build plate" +msgstr "打印平台" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:311 +msgctxt "@tooltip" +msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." +msgstr "热床的目标温度。热床将加热或冷却至此温度。若设置为 0,则不使用热床。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:343 +msgctxt "@tooltip" +msgid "The current temperature of the heated bed." +msgstr "热床当前温度。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:422 +msgctxt "@tooltip of temperature input" +msgid "The temperature to pre-heat the bed to." +msgstr "热床的预热温度。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 +msgctxt "@button Cancel pre-heating" +msgid "Cancel" +msgstr "取消" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:617 +msgctxt "@button" +msgid "Pre-heat" +msgstr "预热" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 +msgctxt "@tooltip of pre-heat" +msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." +msgstr "打印前请预热热床。您可以在热床加热时继续调整相关项,让您在准备打印时不必等待热床加热完毕。" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:677 +msgctxt "@label" +msgid "Active print" +msgstr "正在打印" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:682 +msgctxt "@label" +msgid "Job Name" +msgstr "作业名" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:688 +msgctxt "@label" +msgid "Printing Time" +msgstr "打印时间" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:694 +msgctxt "@label" +msgid "Estimated time left" +msgstr "预计剩余时间" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:67 +msgctxt "@action:inmenu" +msgid "Toggle Fu&ll Screen" +msgstr "切换完整界面(&F)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:74 +msgctxt "@action:inmenu menubar:edit" +msgid "&Undo" +msgstr "撤销(&U)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:84 +msgctxt "@action:inmenu menubar:edit" +msgid "&Redo" +msgstr "重做(&R)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:94 +msgctxt "@action:inmenu menubar:file" +msgid "&Quit" +msgstr "退出(&Q)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:102 +msgctxt "@action:inmenu" +msgid "Configure Cura..." +msgstr "配置 Cura…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:109 +msgctxt "@action:inmenu menubar:printer" +msgid "&Add Printer..." +msgstr "新增打印机(&A)…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:115 +msgctxt "@action:inmenu menubar:printer" +msgid "Manage Pr&inters..." +msgstr "管理打印机(&I)..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:122 +msgctxt "@action:inmenu" +msgid "Manage Materials..." +msgstr "管理材料…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:130 +msgctxt "@action:inmenu menubar:profile" +msgid "&Update profile with current settings/overrides" +msgstr "使用当前设置 / 重写值更新配置文件(&U)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:138 +msgctxt "@action:inmenu menubar:profile" +msgid "&Discard current changes" +msgstr "舍弃当前更改(&D)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:150 +msgctxt "@action:inmenu menubar:profile" +msgid "&Create profile from current settings/overrides..." +msgstr "从当前设置 / 重写值创建配置文件(&C)…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 +msgctxt "@action:inmenu menubar:profile" +msgid "Manage Profiles..." +msgstr "管理配置文件.." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:163 +msgctxt "@action:inmenu menubar:help" +msgid "Show Online &Documentation" +msgstr "显示在线文档(&D)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:171 +msgctxt "@action:inmenu menubar:help" +msgid "Report a &Bug" +msgstr "BUG 反馈(&B)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:179 +msgctxt "@action:inmenu menubar:help" +msgid "&About..." +msgstr "关于(&A)…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:186 +msgctxt "@action:inmenu menubar:edit" +msgid "Delete &Selected Model" +msgid_plural "Delete &Selected Models" +msgstr[0] "删除所选模型(&S)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:196 +msgctxt "@action:inmenu menubar:edit" +msgid "Center Selected Model" +msgid_plural "Center Selected Models" +msgstr[0] "居中所选模型" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:205 +msgctxt "@action:inmenu menubar:edit" +msgid "Multiply Selected Model" +msgid_plural "Multiply Selected Models" +msgstr[0] "复制所选模型" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:214 +msgctxt "@action:inmenu" +msgid "Delete Model" +msgstr "删除模型" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:222 +msgctxt "@action:inmenu" +msgid "Ce&nter Model on Platform" +msgstr "使模型居于平台中央(&N)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:228 +msgctxt "@action:inmenu menubar:edit" +msgid "&Group Models" +msgstr "绑定模型(&G)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:238 +msgctxt "@action:inmenu menubar:edit" +msgid "Ungroup Models" +msgstr "拆分模型" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248 +msgctxt "@action:inmenu menubar:edit" +msgid "&Merge Models" +msgstr "合并模型(&M)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258 +msgctxt "@action:inmenu" +msgid "&Multiply Model..." +msgstr "复制模型…(&M)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:265 +msgctxt "@action:inmenu menubar:edit" +msgid "&Select All Models" +msgstr "选择所有模型(&S)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:275 +msgctxt "@action:inmenu menubar:edit" +msgid "&Clear Build Plate" +msgstr "清空打印平台(&C)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:285 +msgctxt "@action:inmenu menubar:file" +msgid "Re&load All Models" +msgstr "重新载入所有模型(&L)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 +msgctxt "@action:inmenu menubar:edit" +msgid "Arrange All Models" +msgstr "编位所有的模型" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:302 +msgctxt "@action:inmenu menubar:edit" +msgid "Arrange Selection" +msgstr "为所选模型编位" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:309 +msgctxt "@action:inmenu menubar:edit" +msgid "Reset All Model Positions" +msgstr "复位所有模型的位置" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:316 +msgctxt "@action:inmenu menubar:edit" +msgid "Reset All Model &Transformations" +msgstr "复位所有模型的变动(&T)" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:323 +msgctxt "@action:inmenu menubar:file" +msgid "&Open File(s)..." +msgstr "打开文件(&O)…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:331 +msgctxt "@action:inmenu menubar:file" +msgid "&New Project..." +msgstr "新建项目(&N)…" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:338 +msgctxt "@action:inmenu menubar:help" +msgid "Show Engine &Log..." +msgstr "显示引擎日志(&L)..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:346 +msgctxt "@action:inmenu menubar:help" +msgid "Show Configuration Folder" +msgstr "显示配置文件夹" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:353 +msgctxt "@action:menu" +msgid "Configure setting visibility..." +msgstr "配置设定可见性..." + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:26 +msgctxt "@label:PrintjobStatus" +msgid "Please load a 3D model" +msgstr "请载入一个 3D 模型" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:32 +msgctxt "@label:PrintjobStatus" +msgid "Ready to slice" +msgstr "切片已准备就绪" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:34 +msgctxt "@label:PrintjobStatus" +msgid "Slicing..." +msgstr "正在切片..." + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:36 +msgctxt "@label:PrintjobStatus %1 is target operation" +msgid "Ready to %1" +msgstr "%1 已准备就绪" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:38 +msgctxt "@label:PrintjobStatus" +msgid "Unable to Slice" +msgstr "无法切片" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:40 +msgctxt "@label:PrintjobStatus" +msgid "Slicing unavailable" +msgstr "切片不可用" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 +msgctxt "@label:Printjob" +msgid "Prepare" +msgstr "准备" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:147 +msgctxt "@label:Printjob" +msgid "Cancel" +msgstr "取消" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:287 +msgctxt "@info:tooltip" +msgid "Select the active output device" +msgstr "选择活动的输出装置" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 +msgctxt "@title:window" +msgid "Open file(s)" +msgstr "打开文件" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:64 +msgctxt "@text:window" +msgid "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" +msgstr "我们已经在您所选择的文件中找到一个或多个项目文件,但一次只能打开一个项目文件。我们建议只从那些文件中导入模型而不打开项目。您要继续操作吗?" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:99 +msgctxt "@action:button" +msgid "Import all as models" +msgstr "导入所有模型" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:19 +msgctxt "@title:window" +msgid "Cura" +msgstr "Cura" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:85 +msgctxt "@title:menu menubar:toplevel" +msgid "&File" +msgstr "文件(&F)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:102 +msgctxt "@action:inmenu menubar:file" +msgid "&Save Selection to File" +msgstr "保存到文件(&S)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:111 +msgctxt "@title:menu menubar:file" +msgid "Save &As..." +msgstr "另存为(&A)…" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:122 +msgctxt "@title:menu menubar:file" +msgid "Save project" +msgstr "保存项目" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:145 +msgctxt "@title:menu menubar:toplevel" +msgid "&Edit" +msgstr "编辑(&E)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:162 +msgctxt "@title:menu" +msgid "&View" +msgstr "视图(&V)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:167 +msgctxt "@title:menu" +msgid "&Settings" +msgstr "设置(&S)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:169 +msgctxt "@title:menu menubar:toplevel" +msgid "&Printer" +msgstr "打印机(&P)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:179 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:191 +msgctxt "@title:menu" +msgid "&Material" +msgstr "材料(&M)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:180 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:192 +msgctxt "@title:menu" +msgid "&Profile" +msgstr "配置文件(&P)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:184 +msgctxt "@action:inmenu" +msgid "Set as Active Extruder" +msgstr "设为主要挤出机" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:202 +msgctxt "@title:menu menubar:toplevel" +msgid "E&xtensions" +msgstr "扩展(&X)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:235 +msgctxt "@title:menu menubar:toplevel" +msgid "P&references" +msgstr "偏好设置(&R)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:243 +msgctxt "@title:menu menubar:toplevel" +msgid "&Help" +msgstr "帮助(&H)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:325 +msgctxt "@action:button" +msgid "Open File" +msgstr "打开文件" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:439 +msgctxt "@title:tab" +msgid "Settings" +msgstr "设置" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:475 +msgctxt "@title:window" +msgid "New project" +msgstr "新建项目" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:476 +msgctxt "@info:question" +msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." +msgstr "你确定要开始一个新项目吗?这将清除打印平台及任何未保存的设置。" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:694 +msgctxt "@window:title" +msgid "Install Plugin" +msgstr "安装插件" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:701 +msgctxt "@title:window" +msgid "Open File(s)" +msgstr "打开文件" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:704 +msgctxt "@text:window" +msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." +msgstr "我们已经在您选择的文件中找到一个或多个 G-Code 文件。您一次只能打开一个 G-Code 文件。若需打开 G-Code 文件,请仅选择一个。" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:14 +msgctxt "@title:window" +msgid "Save Project" +msgstr "保存项目" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:134 +msgctxt "@action:label" +msgid "Extruder %1" +msgstr "挤出机 %1" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:144 +msgctxt "@action:label" +msgid "%1 & material" +msgstr "%1 & 材料" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:240 +msgctxt "@action:label" +msgid "Don't show project summary on save again" +msgstr "保存时不再显示项目摘要" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "保存" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:65 +msgctxt "@title:tab" +msgid "Prepare" +msgstr "准备" + +#: /home/ruben/Projects/Cura/resources/qml/Topbar.qml:79 +msgctxt "@title:tab" +msgid "Monitor" +msgstr "监控" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:50 +msgctxt "@label" +msgid "Layer Height" +msgstr "层高" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:62 +msgctxt "@label" +msgid "Print Speed" +msgstr "打印速度" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:73 +msgctxt "@label" +msgid "Slower" +msgstr "更慢" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:85 +msgctxt "@label" +msgid "Faster" +msgstr "更快" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:416 +msgctxt "@label" +msgid "Infill" +msgstr "填充" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:590 +msgctxt "@label" +msgid "Gradual infill will gradually increase the amount of infill towards the top." +msgstr "渐层填充(Gradual infill)将随着打印高度的提升而逐渐加大填充密度。" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:602 +msgctxt "@label" +msgid "Enable gradual" +msgstr "启用渐层" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:668 +msgctxt "@label" +msgid "Generate Support" +msgstr "生成支撑" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:702 +msgctxt "@label" +msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." +msgstr "在模型的悬垂(Overhangs)部分生成支撑结构。若不这样做,这些部分在打印时将倒塌。" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:718 +msgctxt "@label" +msgid "Support Extruder" +msgstr "支撑用挤出机" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:769 +msgctxt "@label" +msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." +msgstr "选择用于支撑的挤出机。该挤出机将在模型之下建立支撑结构,以防止模型下垂或在空中打印。" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:796 +msgctxt "@label" +msgid "Build Plate Adhesion" +msgstr "打印平台附着" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:843 +msgctxt "@label" +msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." +msgstr "允许打印 Brim 或 Raft。这将在您的对象周围或下方添加一个容易切断的平面区域。" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:883 +msgctxt "@label" +msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" +msgstr "需要帮助改善您的打印?阅读 Ultimaker 故障排除指南" + +#: /home/ruben/Projects/Cura/resources/qml/ExtruderButton.qml:16 +msgctxt "@label %1 is filled in with the name of an extruder" +msgid "Print Selected Model with %1" +msgid_plural "Print Selected Models with %1" +msgstr[0] "用 %1 打印所选模型" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 +msgctxt "@title:window" +msgid "Open project file" +msgstr "打开项目文件" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:71 +msgctxt "@text:window" +msgid "This is a Cura project file. Would you like to open it as a project or import the models from it?" +msgstr "这是一个 Cura 项目文件。您想将其作为一个项目打开还是从中导入模型?" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:95 +msgctxt "@action:button" +msgid "Open as project" +msgstr "作为项目打开" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:114 +msgctxt "@action:button" +msgid "Import models" +msgstr "导入模型" + +#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:15 +msgctxt "@title:window" +msgid "Engine Log" +msgstr "引擎日志" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:261 +msgctxt "@label" +msgid "Material" +msgstr "材料" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:374 +msgctxt "@label" +msgid "Check material compatibility" +msgstr "检查材料兼容性" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:394 +msgctxt "@tooltip" +msgid "Click to check the material compatibility on Ultimaker.com." +msgstr "点击查看 Ultimaker.com 上的材料兼容情况。" + +#: MachineSettingsAction/plugin.json +msgctxt "description" +msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" +msgstr "提供更改打印机设置(如成形空间体积、喷嘴口径等)的方法" + +#: MachineSettingsAction/plugin.json +msgctxt "name" +msgid "Machine Settings action" +msgstr "打印机设置操作" + +#: XRayView/plugin.json +msgctxt "description" +msgid "Provides the X-Ray view." +msgstr "提供透视视图。" + +#: XRayView/plugin.json +msgctxt "name" +msgid "X-Ray View" +msgstr "透视视图" + +#: X3DReader/plugin.json +msgctxt "description" +msgid "Provides support for reading X3D files." +msgstr "支持读取 X3D 文件。" + +#: X3DReader/plugin.json +msgctxt "name" +msgid "X3D Reader" +msgstr "X3D 读取器" + +#: GCodeWriter/plugin.json +msgctxt "description" +msgid "Writes GCode to a file." +msgstr "将 GCode 写入至文件。" + +#: GCodeWriter/plugin.json +msgctxt "name" +msgid "GCode Writer" +msgstr "GCode 写入器" + +#: cura-god-mode-plugin/src/GodMode/plugin.json +msgctxt "description" +msgid "Dump the contents of all settings to a HTML file." +msgstr "将所有设置内容转储至 HTML 文件。" + +#: cura-god-mode-plugin/src/GodMode/plugin.json +msgctxt "name" +msgid "God Mode" +msgstr "God 模式" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "接受 G-Code 并通过 WiFi 将其发送到 Doodle3D WiFi-Box。" + +#: Doodle3D-cura-plugin/Doodle3D/plugin.json +msgctxt "name" +msgid "Doodle3D WiFi-Box" +msgstr "Doodle3D WiFi-Box" + +#: ChangeLogPlugin/plugin.json +msgctxt "description" +msgid "Shows changes since latest checked version." +msgstr "显示最新版本改动。" + +#: ChangeLogPlugin/plugin.json +msgctxt "name" +msgid "Changelog" +msgstr "更新日志" + +#: ProfileFlattener/plugin.json +msgctxt "description" +msgid "Create a flattend quality changes profile." +msgstr "创建一份合并质量变化配置文件。" + +#: ProfileFlattener/plugin.json +msgctxt "name" +msgid "Profile flatener" +msgstr "配置文件合并器" + +#: USBPrinting/plugin.json +msgctxt "description" +msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." +msgstr "接受 G-Code 并将其发送到一台打印机。 插件也可以更新固件。" + +#: USBPrinting/plugin.json +msgctxt "name" +msgid "USB printing" +msgstr "USB 联机打印" + +#: RemovableDriveOutputDevice/plugin.json +msgctxt "description" +msgid "Provides removable drive hotplugging and writing support." +msgstr "提供可移动磁盘热插拔和写入文件的支持。" + +#: RemovableDriveOutputDevice/plugin.json +msgctxt "name" +msgid "Removable Drive Output Device Plugin" +msgstr "可移动磁盘输出设备插件" + +#: UM3NetworkPrinting/plugin.json +msgctxt "description" +msgid "Manages network connections to Ultimaker 3 printers" +msgstr "管理与 Ultimaker 3 打印机的网络连接" + +#: UM3NetworkPrinting/plugin.json +msgctxt "name" +msgid "UM3 Network Connection" +msgstr "UM3 网络连接" + +#: CuraPrintClusterUpload/plugin.json +msgctxt "name" +msgid "UM3 Network Connection (Cluster)" +msgstr "UM3 网络连接(群集)" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "description" +msgid "Checks for firmware updates." +msgstr "检查以进行固件更新。" + +#: FirmwareUpdateChecker/plugin.json +msgctxt "name" +msgid "Firmware Update Checker" +msgstr "固件更新检查程序" + +#: CuraSolidWorksPlugin/plugin.json +msgctxt "description" +msgid "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura" +msgstr "让您可以通过 SolidWorks 自身打开特定文件。 随后会将这些文件进行转换并载入 Cura" + +#: CuraSolidWorksPlugin/plugin.json +msgctxt "name" +msgid "SolidWorks Integration" +msgstr "SolidWorks 集成" + +#: PostProcessingPlugin/plugin.json +msgctxt "description" +msgid "Extension that allows for user created scripts for post processing" +msgstr "扩展程序(允许用户创建脚本进行后期处理)" + +#: PostProcessingPlugin/plugin.json +msgctxt "name" +msgid "Post Processing" +msgstr "后期处理" + +#: AutoSave/plugin.json +msgctxt "description" +msgid "Automatically saves Preferences, Machines and Profiles after changes." +msgstr "更改后自动保存首选项、机器和配置文件。" + +#: AutoSave/plugin.json +msgctxt "name" +msgid "Auto Save" +msgstr "自动保存" + +#: SliceInfoPlugin/plugin.json +msgctxt "description" +msgid "Submits anonymous slice info. Can be disabled through preferences." +msgstr "提交匿名切片信息。 可以通过偏好设置禁用。" + +#: SliceInfoPlugin/plugin.json +msgctxt "name" +msgid "Slice info" +msgstr "切片信息" + +#: XmlMaterialProfile/plugin.json +msgctxt "description" +msgid "Provides capabilities to read and write XML-based material profiles." +msgstr "提供读取和写入基于 XML 的材料配置文件的功能。" + +#: XmlMaterialProfile/plugin.json +msgctxt "name" +msgid "Material Profiles" +msgstr "材料配置文件" + +#: LegacyProfileReader/plugin.json +msgctxt "description" +msgid "Provides support for importing profiles from legacy Cura versions." +msgstr "支持从 Cura 旧版本导入配置文件。" + +#: LegacyProfileReader/plugin.json +msgctxt "name" +msgid "Legacy Cura Profile Reader" +msgstr "旧版 Cura 配置文件读取器" + +#: GCodeProfileReader/plugin.json +msgctxt "description" +msgid "Provides support for importing profiles from g-code files." +msgstr "提供了从 GCode 文件中导入配置文件的支持。" + +#: GCodeProfileReader/plugin.json +msgctxt "name" +msgid "GCode Profile Reader" +msgstr "GCode 配置文件读取器" + +#: LayerView/plugin.json +msgctxt "description" +msgid "Provides the Layer view." +msgstr "提供分层视图。" + +#: LayerView/plugin.json +msgctxt "name" +msgid "Layer View" +msgstr "分层视图" + +#: VersionUpgrade/VersionUpgrade25to26/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." +msgstr "将配置从 Cura 2.5 版本升级至 2.6 版本。" + +#: VersionUpgrade/VersionUpgrade25to26/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.5 to 2.6" +msgstr "版本自 2.5 升级到 2.6" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.7 to Cura 3.0." +msgstr "将配置从 Cura 2.7 版本升级至 3.0 版本。" + +#: VersionUpgrade/VersionUpgrade27to30/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.7 to 3.0" +msgstr "版本自 2.7 升级到 3.0" + +#: VersionUpgrade/VersionUpgrade26to27/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.6 to Cura 2.7." +msgstr "将配置从 Cura 2.6 版本升级至 2.7 版本。" + +#: VersionUpgrade/VersionUpgrade26to27/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.6 to 2.7" +msgstr "版本自 2.6 升级到 2.7" + +#: VersionUpgrade/VersionUpgrade21to22/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." +msgstr "将配置从 Cura 2.1 版本升级至 2.2 版本。" + +#: VersionUpgrade/VersionUpgrade21to22/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.1 to 2.2" +msgstr "版本自 2.1 升级到 2.2" + +#: VersionUpgrade/VersionUpgrade22to24/plugin.json +msgctxt "description" +msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." +msgstr "将配置从 Cura 2.2 版本升级至 2.4 版本。" + +#: VersionUpgrade/VersionUpgrade22to24/plugin.json +msgctxt "name" +msgid "Version Upgrade 2.2 to 2.4" +msgstr "版本自 2.2 升级到 2.4" + +#: ImageReader/plugin.json +msgctxt "description" +msgid "Enables ability to generate printable geometry from 2D image files." +msgstr "支持从 2D 图像文件生成可打印几何模型的能力。" + +#: ImageReader/plugin.json +msgctxt "name" +msgid "Image Reader" +msgstr "图像读取器" + +#: CuraEngineBackend/plugin.json +msgctxt "description" +msgid "Provides the link to the CuraEngine slicing backend." +msgstr "提供 CuraEngine 切片后端的路径。" + +#: CuraEngineBackend/plugin.json +msgctxt "name" +msgid "CuraEngine Backend" +msgstr "CuraEngine 后端" + +#: PerObjectSettingsTool/plugin.json +msgctxt "description" +msgid "Provides the Per Model Settings." +msgstr "提供对每个模型的单独设置。" + +#: PerObjectSettingsTool/plugin.json +msgctxt "name" +msgid "Per Model Settings Tool" +msgstr "单一模型设置工具" + +#: 3MFReader/plugin.json +msgctxt "description" +msgid "Provides support for reading 3MF files." +msgstr "提供对读取 3MF 格式文件的支持。" + +#: 3MFReader/plugin.json +msgctxt "name" +msgid "3MF Reader" +msgstr "3MF 读取器" + +#: PluginBrowser/plugin.json +msgctxt "description" +msgid "Find, manage and install new plugins." +msgstr "查找、管理和安装新插件。" + +#: PluginBrowser/plugin.json +msgctxt "name" +msgid "Plugin Browser" +msgstr "插件浏览器" + +#: SolidView/plugin.json +msgctxt "description" +msgid "Provides a normal solid mesh view." +msgstr "提供一个基本的实体网格视图。" + +#: SolidView/plugin.json +msgctxt "name" +msgid "Solid View" +msgstr "实体视图" + +#: GCodeReader/plugin.json +msgctxt "description" +msgid "Allows loading and displaying G-code files." +msgstr "允许加载和显示 G-code 文件。" + +#: GCodeReader/plugin.json +msgctxt "name" +msgid "G-code Reader" +msgstr "G-code 读取器" + +#: CuraProfileWriter/plugin.json +msgctxt "description" +msgid "Provides support for exporting Cura profiles." +msgstr "提供了对导出 Cura 配置文件的支持。" + +#: CuraProfileWriter/plugin.json +msgctxt "name" +msgid "Cura Profile Writer" +msgstr "Cura 配置文件写入器" + +#: 3MFWriter/plugin.json +msgctxt "description" +msgid "Provides support for writing 3MF files." +msgstr "提供对写入 3MF 文件的支持。" + +#: 3MFWriter/plugin.json +msgctxt "name" +msgid "3MF Writer" +msgstr "3MF 写入器" + +#: UltimakerMachineActions/plugin.json +msgctxt "description" +msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" +msgstr "为 Ultimaker 打印机提供操作选项(如平台调平向导、选择升级等)" + +#: UltimakerMachineActions/plugin.json +msgctxt "name" +msgid "Ultimaker machine actions" +msgstr "Ultimaker 打印机操作" + +#: CuraProfileReader/plugin.json +msgctxt "description" +msgid "Provides support for importing Cura profiles." +msgstr "提供了对导入 Cura 配置文件的支持。" + +#: CuraProfileReader/plugin.json +msgctxt "name" +msgid "Cura Profile Reader" +msgstr "Cura 配置文件读取器" + +#~ msgctxt "@item:inlistbox" +#~ msgid "X-Ray" +#~ msgstr "透视" + +#~ msgctxt "@label" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +#~ msgstr "接受 G-Code 并通过 WiFi 将其发送到 Doodle3D WiFi-Box。" + +#~ msgctxt "@item:inmenu" +#~ msgid "Doodle3D printing" +#~ msgstr "Doodle3D 打印" + +#~ msgctxt "@action:button" +#~ msgid "Print with Doodle3D" +#~ msgstr "使用 Doodle3D 打印" + +#~ msgctxt "@info:tooltip" +#~ msgid "Print with " +#~ msgstr "使用 " + +#~ msgctxt "@title:menu" +#~ msgid "Doodle3D" +#~ msgstr "Doodle3D 打印" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Enable Scan devices..." +#~ msgstr "启用扫描设备..." + +#~ msgctxt "X3G Writer File Description" +#~ msgid "X3G File" +#~ msgstr "X3G 文件" + +#~ msgctxt "@info:progress" +#~ msgid "Saving to Removable Drive {0}" +#~ msgstr "保存到可移动磁盘 {0} " + +#~ msgctxt "@info:status" +#~ msgid "Could not save to {0}: {1}" +#~ msgstr "无法保存到 {0}{1}" + +#~ msgctxt "@info:status" +#~ msgid "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!" +#~ msgstr "请记住,您必须手动重新打开 SolidWorks 文件! 重新加载模型将无法正常工作!" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Layers" +#~ msgstr "层" + +#~ msgid "Browse plugins" +#~ msgstr "浏览插件" + +#~ msgctxt "@item:inmenu" +#~ msgid "Solid" +#~ msgstr "实体" + +#~ msgctxt "@label" +#~ msgid "The file {0} already exists. Are you sure you want to overwrite it?" +#~ msgstr "文件 {0} 已存在。你确定要替换它吗?" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: {1}" +#~ msgstr "无法将配置文件导出至 {0} {1} " + +#~ msgctxt "@info:status" +#~ msgid "Failed to export profile to {0}: Writer plugin reported failure." +#~ msgstr "无法将配置文件导出至 {0} :写入器插件报告故障。" + +#~ msgctxt "@info:status" +#~ msgid "Exported profile to {0}" +#~ msgstr "配置文件已导出至: {0} " + +#~ msgctxt "@info:status" +#~ msgid "Failed to import profile from {0}: {1}" +#~ msgstr "无法从 {0} 导入配置文件: {1} " + +#~ msgctxt "@title:window" +#~ msgid "Doodle3D Settings" +#~ msgstr "Doodle3D 设置" + +#~ msgctxt "@title:window" +#~ msgid "Print to: %1" +#~ msgstr "打印至:%1" + +#~ msgctxt "@label" +#~ msgid "Extruder Temperature: %1/%2°C" +#~ msgstr "打印头温度:%1/%2 °C" + +#~ msgctxt "@label" +#~ msgid "Bed Temperature: %1/%2°C" +#~ msgstr "热床温度:%1/%2°C" + +#~ msgctxt "@label" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@label" +#~ msgid "View Mode: Layers" +#~ msgstr "视图模式:分层" + +#~ msgctxt "@info:status" +#~ msgid "Could not import material %1: %2" +#~ msgstr "无法导入材料 %1%2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully imported material %1" +#~ msgstr "成功导入材料 %1" + +#~ msgctxt "@info:status" +#~ msgid "Failed to export material to %1: %2" +#~ msgstr "无法导出材料至 %1%2" + +#~ msgctxt "@info:status" +#~ msgid "Successfully exported material to %1" +#~ msgstr "成功导出材料至: %1" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g / ~ %4 %3" +#~ msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#~ msgctxt "@label" +#~ msgid "%1 m / ~ %2 g" +#~ msgstr "%1 m / ~ %2 g" + +#~ msgctxt "@label" +#~ msgid "Hotend" +#~ msgstr "热端" + +#~ msgctxt "@action:button" +#~ msgid "View Mode" +#~ msgstr "视图模式" + +#~ msgctxt "@title:tab" +#~ msgid "Print" +#~ msgstr "打印" + +#~ msgctxt "@label" +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgctxt "@label" +#~ msgid "Empty infill will leave your model hollow with low strength." +#~ msgstr "无填充将使模型处于低强度且保持空心状态。" + +#~ msgctxt "@label" +#~ msgid "20%" +#~ msgstr "20%" + +#~ msgctxt "@label" +#~ msgid "Light (20%) infill will give your model an average strength." +#~ msgstr "轻度(20%)填充将使打印模型处于中等强度。" + +#~ msgctxt "@label" +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgctxt "@label" +#~ msgid "Dense (50%) infill will give your model an above average strength." +#~ msgstr "密集(50%)填充将使打印模型高于平均的强度。" + +#~ msgctxt "@label" +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgctxt "@label" +#~ msgid "Solid (100%) infill will make your model completely solid." +#~ msgstr "完全(100%)填充将使您的模型处于完全实心状态。" + +#~ msgctxt "@label" +#~ msgid "Gradual" +#~ msgstr "渐层填充" + +#~ msgctxt "description" +#~ msgid "Provides support for writing X3G files" +#~ msgstr "提供对写入 X3G 文件的支持" + +#~ msgctxt "name" +#~ msgid "X3G Writer" +#~ msgstr "X3G 写入器" + +#~ msgctxt "@label" +#~ msgid "Machine Settings action" +#~ msgstr "打印机设置操作" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" +#~ msgstr "提供更改打印机设置(如成形空间体积、喷嘴口径等)的方法" + +#~ msgctxt "@label" +#~ msgid "X-Ray View" +#~ msgstr "透视视图" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides the X-Ray view." +#~ msgstr "提供透视视图。" + +#~ msgctxt "@label" +#~ msgid "X3D Reader" +#~ msgstr "X3D 读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for reading X3D files." +#~ msgstr "支持读取 X3D 文件。" + +#~ msgctxt "@label" +#~ msgid "GCode Writer" +#~ msgstr "GCode 写入器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Writes GCode to a file." +#~ msgstr "将 GCode 写入至文件。" + +#~ msgctxt "@action:button Preceded by 'Ready to'." +#~ msgid "Print with Doodle3D" +#~ msgstr "使用 Doodle3D 打印" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Shows changes since latest checked version." +#~ msgstr "显示最新版本改动。" + +#~ msgctxt "@label" +#~ msgid "Profile flatener" +#~ msgstr "配置文件合并器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Create a flattend quality changes profile." +#~ msgstr "创建一份合并质量变化配置文件。" + +#~ msgctxt "@label" +#~ msgid "USB printing" +#~ msgstr "USB 联机打印" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." +#~ msgstr "接受 GCode 并将其发送到打印机。此插件还可以更新固件。" + +#~ msgctxt "X3G Writer Plugin Description" +#~ msgid "Writes X3G to a file" +#~ msgstr "将 X3G 写入文件" + +#~ msgctxt "@label" +#~ msgid "Removable Drive Output Device Plugin" +#~ msgstr "可移动磁盘输出设备插件" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides removable drive hotplugging and writing support." +#~ msgstr "提供可移动磁盘热插拔和写入文件的支持。" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Manages network connections to Ultimaker 3 printers" +#~ msgstr "管理与 Ultimaker 3 打印机的网络连接" + +#~ msgctxt "@label" +#~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" +#~ msgstr "您为挤出机 {2} 选择了不同的打印头(Cura:{0},打印机:{1})" + +#~ msgctxt "@label" +#~ msgid "Print core {0} is not properly calibrated. XY calibration needs to be performed on the printer." +#~ msgstr "打印头 {0} 未正确校准,您需要在打印机上执行 XY 校准。" + +#~ msgctxt "@label" +#~ msgid "The print cores and/or materials on your printer differ from those within your current project. For the best result, always slice for the print cores and materials that are inserted in your printer." +#~ msgstr "打印机上的打印头和/或材料与当前项目中的不同。为获得最佳打印效果,请始终使用已插入的打印头和材料配置进行切片。" + +#~ msgctxt "@label" +#~ msgid "Post Processing" +#~ msgstr "后期处理" + +#~ msgctxt "Description of plugin" +#~ msgid "Extension that allows for user created scripts for post processing" +#~ msgstr "扩展程序(允许用户创建脚本进行后期处理)" + +#~ msgctxt "@label" +#~ msgid "Auto Save" +#~ msgstr "自动保存" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Automatically saves Preferences, Machines and Profiles after changes." +#~ msgstr "更改后自动保存首选项、机器和配置文件。" + +#~ msgctxt "@label" +#~ msgid "Slice info" +#~ msgstr "切片信息" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Submits anonymous slice info. Can be disabled through preferences." +#~ msgstr "提交匿名切片信息。此特性可在偏好设置中禁用。" + +#~ msgctxt "@info" +#~ msgid "Cura collects anonymised slicing statistics. You can disable this in preferences" +#~ msgstr "Cura 将自动收集匿名的切片统计数据,您可以在偏好设置中禁用此选项。" + +#~ msgctxt "@label" +#~ msgid "Material Profiles" +#~ msgstr "材料配置文件" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides capabilities to read and write XML-based material profiles." +#~ msgstr "提供读取和写入基于 XML 的材料配置文件的功能。" + +#~ msgctxt "@label" +#~ msgid "Legacy Cura Profile Reader" +#~ msgstr "旧版 Cura 配置文件读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for importing profiles from legacy Cura versions." +#~ msgstr "支持从 Cura 旧版本导入配置文件。" + +#~ msgctxt "@label" +#~ msgid "GCode Profile Reader" +#~ msgstr "GCode 配置读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for importing profiles from g-code files." +#~ msgstr "提供了从 GCode 文件中导入配置文件的支持。" + +#~ msgctxt "@label" +#~ msgid "Layer View" +#~ msgstr "分层视图" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides the Layer view." +#~ msgstr "提供分层视图。" + +#~ msgctxt "@label" +#~ msgid "Version Upgrade 2.5 to 2.6" +#~ msgstr "版本自 2.5 升级到 2.6" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." +#~ msgstr "将配置从 Cura 2.5 版本升级至 2.6 版本。" + +#~ msgctxt "@label" +#~ msgid "Version Upgrade 2.1 to 2.2" +#~ msgstr "版本自 2.1 升级至 2.2" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." +#~ msgstr "将配置从 Cura 2.1 版本升级至 2.2 版本。" + +#~ msgctxt "@label" +#~ msgid "Version Upgrade 2.2 to 2.4" +#~ msgstr "版本自 2.2 升级到 2.4" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." +#~ msgstr "将配置从 Cura 2.2 版本升级至 2.4 版本。" + +#~ msgctxt "@label" +#~ msgid "Image Reader" +#~ msgstr "图像读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Enables ability to generate printable geometry from 2D image files." +#~ msgstr "支持从 2D 图像文件生成可打印几何模型。" + +#~ msgctxt "@label" +#~ msgid "CuraEngine Backend" +#~ msgstr "CuraEngine 后端" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides the link to the CuraEngine slicing backend." +#~ msgstr "提供 CuraEngine 切片后端的路径" + +#~ msgctxt "@label" +#~ msgid "Per Model Settings Tool" +#~ msgstr "单一模型设置工具" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides the Per Model Settings." +#~ msgstr "提供对每个模型的单独设置。" + +#~ msgctxt "@label" +#~ msgid "3MF Reader" +#~ msgstr "3MF 读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for reading 3MF files." +#~ msgstr "提供对读取 3MF 格式文件的支持。" + +#~ msgctxt "@label" +#~ msgid "Solid View" +#~ msgstr "实体视图" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides a normal solid mesh view." +#~ msgstr "提供一个基本的实体网格视图。" + +#~ msgctxt "@label" +#~ msgid "G-code Reader" +#~ msgstr "G-code 读取器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Allows loading and displaying G-code files." +#~ msgstr "允许加载和显示 G-code 文件。" + +#~ msgctxt "@label" +#~ msgid "Cura Profile Writer" +#~ msgstr "Cura 配置写入器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for exporting Cura profiles." +#~ msgstr "提供了对导出 Cura 配置文件的支持。" + +#~ msgctxt "@label" +#~ msgid "3MF Writer" +#~ msgstr "3MF 写入器" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for writing 3MF files." +#~ msgstr "提供对写入 3MF 文件的支持。" + +#~ msgctxt "@label" +#~ msgid "Ultimaker machine actions" +#~ msgstr "Ultimaker 打印机操作" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "为 Ultimaker 打印机提供操作选项 (如平台调平向导、选择升级等)" + +#~ msgctxt "@label" +#~ msgid "Cura Profile Reader" +#~ msgstr "Cura 配置文件导出" + +#~ msgctxt "@info:whatsthis" +#~ msgid "Provides support for importing Cura profiles." +#~ msgstr "提供了对导入 Cura 配置文件的支持。" + +#~ msgctxt "@info" +#~ msgid "%(width).1f x %(depth).1f x %(height).1f mm" +#~ msgstr "%(宽).1f x %(深).1f x %(高).1f mm" + +#~ msgctxt "@label" +#~ msgid "Build Plate Shape" +#~ msgstr "打印平台形状" + +#~ msgctxt "@option:check" +#~ msgid "Machine Center is Zero" +#~ msgstr "机器中心为零点" + +#~ msgctxt "@option:check" +#~ msgid "Heated Bed" +#~ msgstr "加热床" + +#~ msgctxt "@label" +#~ msgid "GCode Flavor" +#~ msgstr "GCode 类型" + +#~ msgctxt "@label" +#~ msgid "Material Diameter" +#~ msgstr "材料直径" + +#~ msgctxt "@label" +#~ msgid "If your printer is not listed, read the network-printing troubleshooting guide" +#~ msgstr "如果您的打印机未列出,请阅读网络打印故障排除指南" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Ultimaker" +#~ msgstr "Ultimaker" + +#~ msgctxt "@label" +#~ msgid "Support library for scientific computing " +#~ msgstr "科学计算支持库" + +#~ msgctxt "@tooltip" +#~ msgid "Print Setup

Edit or review the settings for the active print job." +#~ msgstr "打印设置

编辑或查看活动打印作业的设置。" + +#~ msgctxt "@tooltip" +#~ msgid "Print Monitor

Monitor the state of the connected printer and the print job in progress." +#~ msgstr "打印监视

可以监视所连接的打印机和正在进行的打印作业的状态。" + +#~ msgctxt "@title:menuitem %1 is the value from the printer" +#~ msgid "Automatic: %1" +#~ msgstr "自动:%1" + +#~ msgctxt "@label:PrintjobStatus" +#~ msgid "Please load a 3d model" +#~ msgstr "请载入一个 3D 模型" + +#~ msgctxt "@label" +#~ msgid "Print Selected Model with %1" +#~ msgid_plural "Print Selected Models With %1" +#~ msgstr[0] "用 %1 打印所选模型" diff --git a/resources/i18n/zh_CN/fdmextruder.def.json.po b/resources/i18n/zh_CN/fdmextruder.def.json.po new file mode 100644 index 0000000000..49c7430422 --- /dev/null +++ b/resources/i18n/zh_CN/fdmextruder.def.json.po @@ -0,0 +1,199 @@ +# Cura JSON setting files +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 3.0\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-08-02 16:53+0000\n" +"PO-Revision-Date: 2017-08-28 11:00+0200\n" +"Last-Translator: Bothof \n" +"Language-Team: PCDotFan , Bothof \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.7.3\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: fdmextruder.def.json +msgctxt "machine_settings label" +msgid "Machine" +msgstr "机型" + +#: fdmextruder.def.json +msgctxt "machine_settings description" +msgid "Machine specific settings" +msgstr "机器详细设置" + +#: fdmextruder.def.json +msgctxt "extruder_nr label" +msgid "Extruder" +msgstr "挤出机" + +#: fdmextruder.def.json +msgctxt "extruder_nr description" +msgid "The extruder train used for printing. This is used in multi-extrusion." +msgstr "用于打印的挤出机,在多挤出机情况下适用。" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_id label" +msgid "Nozzle ID" +msgstr "喷嘴 ID" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_id description" +msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." +msgstr "挤出机组的喷嘴 ID,比如 \"AA 0.4\" 和 \"BB 0.8\"。" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_size label" +msgid "Nozzle Diameter" +msgstr "喷嘴直径" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_size description" +msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." +msgstr "喷嘴内径,在使用非标准喷嘴尺寸时需更改此设置。" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_offset_x label" +msgid "Nozzle X Offset" +msgstr "喷嘴 X 轴偏移量" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_offset_x description" +msgid "The x-coordinate of the offset of the nozzle." +msgstr "喷嘴 X 轴坐标偏移。" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_offset_y label" +msgid "Nozzle Y Offset" +msgstr "喷嘴 Y 轴偏移量" + +#: fdmextruder.def.json +msgctxt "machine_nozzle_offset_y description" +msgid "The y-coordinate of the offset of the nozzle." +msgstr "喷嘴 Y 轴坐标偏移。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_code label" +msgid "Extruder Start G-Code" +msgstr "挤出机 Gcode 开始部分" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_code description" +msgid "Start g-code to execute whenever turning the extruder on." +msgstr "打开挤出机将执行此段 G-code。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_abs label" +msgid "Extruder Start Position Absolute" +msgstr "挤出机起点绝对位置" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_abs description" +msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head." +msgstr "令挤出机起始位置为绝对位置,而不根据打印头的最后位置来改变。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_x label" +msgid "Extruder Start Position X" +msgstr "挤出机起始位置 X 坐标" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_x description" +msgid "The x-coordinate of the starting position when turning the extruder on." +msgstr "打开挤出机时起始位置的 X 坐标。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_y label" +msgid "Extruder Start Position Y" +msgstr "挤出机起始位置 Y 坐标" + +#: fdmextruder.def.json +msgctxt "machine_extruder_start_pos_y description" +msgid "The y-coordinate of the starting position when turning the extruder on." +msgstr "打开挤压机时的起始位置 Y 坐标。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_code label" +msgid "Extruder End G-Code" +msgstr "挤出机 Gcode 结束部分" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_code description" +msgid "End g-code to execute whenever turning the extruder off." +msgstr "在关闭挤出机时,执行结束 G-code。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_abs label" +msgid "Extruder End Position Absolute" +msgstr "挤出机终点绝对位置" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_abs description" +msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head." +msgstr "令挤出机结束位置为绝对位置,而不根据打印头的最后位置来改变。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_x label" +msgid "Extruder End Position X" +msgstr "挤出机结束位置 X 坐标" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_x description" +msgid "The x-coordinate of the ending position when turning the extruder off." +msgstr "关闭挤出机时的终止位置的 X 坐标。" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_y label" +msgid "Extruder End Position Y" +msgstr "挤出机终点位置 Y 坐标" + +#: fdmextruder.def.json +msgctxt "machine_extruder_end_pos_y description" +msgid "The y-coordinate of the ending position when turning the extruder off." +msgstr "关闭挤出机时的终止位置的 Y 坐标。" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_z label" +msgid "Extruder Prime Z Position" +msgstr "挤出机初始 Z 轴位置" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_z description" +msgid "The Z coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 Z 轴坐标上的起始位置." + +#: fdmextruder.def.json +msgctxt "platform_adhesion label" +msgid "Build Plate Adhesion" +msgstr "打印平台附着" + +#: fdmextruder.def.json +msgctxt "platform_adhesion description" +msgid "Adhesion" +msgstr "附着" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_x label" +msgid "Extruder Prime X Position" +msgstr "挤出机 X 轴坐标" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_x description" +msgid "The X coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 X 轴上初始位置。" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_y label" +msgid "Extruder Prime Y Position" +msgstr "挤出机 Y 轴起始位置" + +#: fdmextruder.def.json +msgctxt "extruder_prime_pos_y description" +msgid "The Y coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 Y 轴坐标上初始位置。" diff --git a/resources/i18n/zh_CN/fdmprinter.def.json.po b/resources/i18n/zh_CN/fdmprinter.def.json.po new file mode 100644 index 0000000000..78650174db --- /dev/null +++ b/resources/i18n/zh_CN/fdmprinter.def.json.po @@ -0,0 +1,5001 @@ +# Cura JSON setting files +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 3.0\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-08-02 16:53+0000\n" +"PO-Revision-Date: 2017-09-27 12:27+0200\n" +"Last-Translator: Bothof \n" +"Language-Team: PCDotFan , Bothof \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.7.3\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: fdmprinter.def.json +msgctxt "machine_settings label" +msgid "Machine" +msgstr "机器" + +#: fdmprinter.def.json +msgctxt "machine_settings description" +msgid "Machine specific settings" +msgstr "机器详细设置" + +#: fdmprinter.def.json +msgctxt "machine_name label" +msgid "Machine Type" +msgstr "机器类型" + +#: fdmprinter.def.json +msgctxt "machine_name description" +msgid "The name of your 3D printer model." +msgstr "您的 3D 打印机型号的名称。" + +#: fdmprinter.def.json +msgctxt "machine_show_variants label" +msgid "Show Machine Variants" +msgstr "显示打印机变体" + +#: fdmprinter.def.json +msgctxt "machine_show_variants description" +msgid "Whether to show the different variants of this machine, which are described in separate json files." +msgstr "这台打印机是否需要显示它在不同的 JSON 文件中所描述的不同变化。" + +#: fdmprinter.def.json +msgctxt "machine_start_gcode label" +msgid "Start GCode" +msgstr "GCode 开始部分" + +#: fdmprinter.def.json +msgctxt "machine_start_gcode description" +msgid "" +"Gcode commands to be executed at the very start - separated by \n" +"." +msgstr "在开始后执行的 G-code 命令 - 以 \n 分行" + +#: fdmprinter.def.json +msgctxt "machine_end_gcode label" +msgid "End GCode" +msgstr "GCode 结束部分" + +#: fdmprinter.def.json +msgctxt "machine_end_gcode description" +msgid "" +"Gcode commands to be executed at the very end - separated by \n" +"." +msgstr "在结束前执行的 G-code 命令 - 以 \n 分行" + +#: fdmprinter.def.json +msgctxt "material_guid label" +msgid "Material GUID" +msgstr "材料 GUID" + +#: fdmprinter.def.json +msgctxt "material_guid description" +msgid "GUID of the material. This is set automatically. " +msgstr "材料 GUID,此项为自动设置。" + +#: fdmprinter.def.json +msgctxt "material_bed_temp_wait label" +msgid "Wait for Build Plate Heatup" +msgstr "等待打印平台加热" + +#: fdmprinter.def.json +msgctxt "material_bed_temp_wait description" +msgid "Whether to insert a command to wait until the build plate temperature is reached at the start." +msgstr "是否插入一条命令,等待开始时达到打印平台温度。" + +#: fdmprinter.def.json +msgctxt "material_print_temp_wait label" +msgid "Wait for Nozzle Heatup" +msgstr "等待喷嘴加热" + +#: fdmprinter.def.json +msgctxt "material_print_temp_wait description" +msgid "Whether to wait until the nozzle temperature is reached at the start." +msgstr "是否等待开始时达到喷嘴温度。" + +#: fdmprinter.def.json +msgctxt "material_print_temp_prepend label" +msgid "Include Material Temperatures" +msgstr "包含材料温度" + +#: fdmprinter.def.json +msgctxt "material_print_temp_prepend description" +msgid "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting." +msgstr "是否在 gcode 开始部分包含喷嘴温度命令。 当 start_gcode 已包含喷嘴温度命令时,Cura 前端将自动禁用此设置。" + +#: fdmprinter.def.json +msgctxt "material_bed_temp_prepend label" +msgid "Include Build Plate Temperature" +msgstr "包含打印平台温度" + +#: fdmprinter.def.json +msgctxt "material_bed_temp_prepend description" +msgid "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting." +msgstr "是否需要在 G-code 开始部分包含检查热床温度的命令。当 start_gcode 包含热床温度命令时,Cura 前端将自动禁用此设置。" + +#: fdmprinter.def.json +msgctxt "machine_width label" +msgid "Machine Width" +msgstr "机器宽度" + +#: fdmprinter.def.json +msgctxt "machine_width description" +msgid "The width (X-direction) of the printable area." +msgstr "机器可打印区域宽度(X 坐标)" + +#: fdmprinter.def.json +msgctxt "machine_depth label" +msgid "Machine Depth" +msgstr "机器深度" + +#: fdmprinter.def.json +msgctxt "machine_depth description" +msgid "The depth (Y-direction) of the printable area." +msgstr "机器可打印区域深度(Y 坐标)" + +#: fdmprinter.def.json +msgctxt "machine_shape label" +msgid "Build Plate Shape" +msgstr "打印平台形状" + +#: fdmprinter.def.json +msgctxt "machine_shape description" +msgid "The shape of the build plate without taking unprintable areas into account." +msgstr "打印平台形状(不考虑不可打印区域)。" + +#: fdmprinter.def.json +msgctxt "machine_shape option rectangular" +msgid "Rectangular" +msgstr "矩形" + +#: fdmprinter.def.json +msgctxt "machine_shape option elliptic" +msgid "Elliptic" +msgstr "类圆形" + +#: fdmprinter.def.json +msgctxt "machine_height label" +msgid "Machine Height" +msgstr "机器高度" + +#: fdmprinter.def.json +msgctxt "machine_height description" +msgid "The height (Z-direction) of the printable area." +msgstr "机器可打印区域高度(Z 坐标)" + +#: fdmprinter.def.json +msgctxt "machine_heated_bed label" +msgid "Has Heated Build Plate" +msgstr "有加热打印平台" + +#: fdmprinter.def.json +msgctxt "machine_heated_bed description" +msgid "Whether the machine has a heated build plate present." +msgstr "机器是否有加热打印平台。" + +#: fdmprinter.def.json +msgctxt "machine_center_is_zero label" +msgid "Is Center Origin" +msgstr "位于中心" + +#: fdmprinter.def.json +msgctxt "machine_center_is_zero description" +msgid "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area." +msgstr "打印机零位的 X/Y 坐标是否位于可打印区域的中心。" + +#: fdmprinter.def.json +msgctxt "machine_extruder_count label" +msgid "Number of Extruders" +msgstr "挤出机数目" + +#: fdmprinter.def.json +msgctxt "machine_extruder_count description" +msgid "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle." +msgstr "挤出机组数目。 挤出机组是指进料装置、鲍登管和喷嘴的组合。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_tip_outer_diameter label" +msgid "Outer nozzle diameter" +msgstr "喷嘴外径" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_tip_outer_diameter description" +msgid "The outer diameter of the tip of the nozzle." +msgstr "喷嘴尖端的外径。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_head_distance label" +msgid "Nozzle length" +msgstr "喷嘴长度" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_head_distance description" +msgid "The height difference between the tip of the nozzle and the lowest part of the print head." +msgstr "喷嘴尖端与打印头最低部分之间的高度差。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_expansion_angle label" +msgid "Nozzle angle" +msgstr "喷嘴角度" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_expansion_angle description" +msgid "The angle between the horizontal plane and the conical part right above the tip of the nozzle." +msgstr "水平面与喷嘴尖端上部圆锥形之间的角度。" + +#: fdmprinter.def.json +msgctxt "machine_heat_zone_length label" +msgid "Heat zone length" +msgstr "加热区长度" + +#: fdmprinter.def.json +msgctxt "machine_heat_zone_length description" +msgid "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament." +msgstr "与喷嘴尖端的距离,喷嘴产生的热量在这段距离内传递到耗材中。" + +#: fdmprinter.def.json +msgctxt "machine_filament_park_distance label" +msgid "Filament Park Distance" +msgstr "耗材停放距离" + +#: fdmprinter.def.json +msgctxt "machine_filament_park_distance description" +msgid "The distance from the tip of the nozzle where to park the filament when an extruder is no longer used." +msgstr "与喷嘴尖端的距离,当不再使用挤出机时会将耗材停放在此区域。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_temp_enabled label" +msgid "Enable Nozzle Temperature Control" +msgstr "启用喷嘴温度控制" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_temp_enabled description" +msgid "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura." +msgstr "是否从 Cura 控制温度。 关闭此选项,从 Cura 外部控制喷嘴温度。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_heat_up_speed label" +msgid "Heat up speed" +msgstr "升温速度" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_heat_up_speed description" +msgid "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature." +msgstr "喷嘴升温到平均超过正常打印温度和待机温度范围的速度 (°C/s)。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_cool_down_speed label" +msgid "Cool down speed" +msgstr "冷却速度" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_cool_down_speed description" +msgid "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature." +msgstr "喷嘴冷却到平均超过正常打印温度和待机温度范围的速度 (°C/s)。" + +#: fdmprinter.def.json +msgctxt "machine_min_cool_heat_time_window label" +msgid "Minimal Time Standby Temperature" +msgstr "最短时间待机温度" + +#: fdmprinter.def.json +msgctxt "machine_min_cool_heat_time_window description" +msgid "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature." +msgstr "挤出机必须保持不活动以便喷嘴冷却的最短时间。 挤出机必须不使用此时间以上,才可以冷却到待机温度。" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor label" +msgid "Gcode flavour" +msgstr "G-code 代码风格" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor description" +msgid "The type of gcode to be generated." +msgstr "需要生成的 G-code 代码类型" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" +msgid "Marlin" +msgstr "Marlin" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option RepRap (Volumetric)" +msgid "Marlin (Volumetric)" +msgstr "Marlin(容积)" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option RepRap (RepRap)" +msgid "RepRap" +msgstr "RepRap" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option UltiGCode" +msgid "Ultimaker 2" +msgstr "Ultimaker 2" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option Griffin" +msgid "Griffin" +msgstr "Griffin" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option Makerbot" +msgid "Makerbot" +msgstr "Makerbot" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option BFB" +msgid "Bits from Bytes" +msgstr "Bits from Bytes" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option MACH3" +msgid "Mach3" +msgstr "Mach3" + +#: fdmprinter.def.json +msgctxt "machine_gcode_flavor option Repetier" +msgid "Repetier" +msgstr "Repetier" + +#: fdmprinter.def.json +msgctxt "machine_disallowed_areas label" +msgid "Disallowed areas" +msgstr "不允许区域" + +#: fdmprinter.def.json +msgctxt "machine_disallowed_areas description" +msgid "A list of polygons with areas the print head is not allowed to enter." +msgstr "包含不允许打印头进入区域的多边形列表。" + +#: fdmprinter.def.json +msgctxt "nozzle_disallowed_areas label" +msgid "Nozzle Disallowed Areas" +msgstr "喷嘴不允许区域" + +#: fdmprinter.def.json +msgctxt "nozzle_disallowed_areas description" +msgid "A list of polygons with areas the nozzle is not allowed to enter." +msgstr "包含不允许喷嘴进入区域的多边形列表。" + +#: fdmprinter.def.json +msgctxt "machine_head_polygon label" +msgid "Machine head polygon" +msgstr "机器头多边形" + +#: fdmprinter.def.json +msgctxt "machine_head_polygon description" +msgid "A 2D silhouette of the print head (fan caps excluded)." +msgstr "打印头 2D 轮廓图(不包含风扇盖)。" + +#: fdmprinter.def.json +msgctxt "machine_head_with_fans_polygon label" +msgid "Machine head & Fan polygon" +msgstr "机器头和风扇多边形" + +#: fdmprinter.def.json +msgctxt "machine_head_with_fans_polygon description" +msgid "A 2D silhouette of the print head (fan caps included)." +msgstr "打印头 2D 轮廓图(包含风扇盖)。" + +#: fdmprinter.def.json +msgctxt "gantry_height label" +msgid "Gantry height" +msgstr "十字轴高度" + +#: fdmprinter.def.json +msgctxt "gantry_height description" +msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes)." +msgstr "喷嘴尖端与十字轴系统(X 轴和 Y 轴)之间的高度差。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_id label" +msgid "Nozzle ID" +msgstr "喷嘴 ID" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_id description" +msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." +msgstr "挤出机组的喷嘴 ID,比如\"AA 0.4\"和\"BB 0.8\"。" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_size label" +msgid "Nozzle Diameter" +msgstr "喷嘴直径" + +#: fdmprinter.def.json +msgctxt "machine_nozzle_size description" +msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." +msgstr "喷嘴内径,在使用非标准喷嘴尺寸时需更改此设置。" + +#: fdmprinter.def.json +msgctxt "machine_use_extruder_offset_to_offset_coords label" +msgid "Offset With Extruder" +msgstr "挤出机偏移量" + +#: fdmprinter.def.json +msgctxt "machine_use_extruder_offset_to_offset_coords description" +msgid "Apply the extruder offset to the coordinate system." +msgstr "将挤出机偏移量应用到坐标轴系统。" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_z label" +msgid "Extruder Prime Z Position" +msgstr "挤出机初始 Z 轴位置" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_z description" +msgid "The Z coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 Z 轴坐标上的起始位置." + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_abs label" +msgid "Absolute Extruder Prime Position" +msgstr "绝对挤出机主要位置" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_abs description" +msgid "Make the extruder prime position absolute rather than relative to the last-known location of the head." +msgstr "使挤出机主要位置为绝对值,而不是与上一已知打印头位置的相对值。" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_x label" +msgid "Maximum Speed X" +msgstr "X 轴最大速度" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_x description" +msgid "The maximum speed for the motor of the X-direction." +msgstr "X 轴方向电机的最大速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_y label" +msgid "Maximum Speed Y" +msgstr "Y 轴最大速度" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_y description" +msgid "The maximum speed for the motor of the Y-direction." +msgstr "Y 轴方向电机的最大速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_z label" +msgid "Maximum Speed Z" +msgstr "Z 轴最大速度" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_z description" +msgid "The maximum speed for the motor of the Z-direction." +msgstr "Z 轴方向电机的最大速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_e label" +msgid "Maximum Feedrate" +msgstr "最大进料速率" + +#: fdmprinter.def.json +msgctxt "machine_max_feedrate_e description" +msgid "The maximum speed of the filament." +msgstr "耗材的最大速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_x label" +msgid "Maximum Acceleration X" +msgstr "X 轴最大加速度" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_x description" +msgid "Maximum acceleration for the motor of the X-direction" +msgstr "X 轴方向电机的最大加速度" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_y label" +msgid "Maximum Acceleration Y" +msgstr " 轴最大加速度" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_y description" +msgid "Maximum acceleration for the motor of the Y-direction." +msgstr "Y 轴方向电机的最大加速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_z label" +msgid "Maximum Acceleration Z" +msgstr "Z 轴最大加速度" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_z description" +msgid "Maximum acceleration for the motor of the Z-direction." +msgstr "Z 轴方向电机的最大加速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_e label" +msgid "Maximum Filament Acceleration" +msgstr "挤出电机最大加速度" + +#: fdmprinter.def.json +msgctxt "machine_max_acceleration_e description" +msgid "Maximum acceleration for the motor of the filament." +msgstr "耗材电机的最大加速度。" + +#: fdmprinter.def.json +msgctxt "machine_acceleration label" +msgid "Default Acceleration" +msgstr "默认加速度" + +#: fdmprinter.def.json +msgctxt "machine_acceleration description" +msgid "The default acceleration of print head movement." +msgstr "打印头移动的默认加速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_xy label" +msgid "Default X-Y Jerk" +msgstr "默认 X-Y 平面抖动速度(Jerk)" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_xy description" +msgid "Default jerk for movement in the horizontal plane." +msgstr "水平面移动的默认抖动速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_z label" +msgid "Default Z Jerk" +msgstr "默认 Z 轴抖动速度(Jerk)" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_z description" +msgid "Default jerk for the motor of the Z-direction." +msgstr "Z 轴方向电机的默认抖动速度。" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_e label" +msgid "Default Filament Jerk" +msgstr "默认挤出电机 Jerk" + +#: fdmprinter.def.json +msgctxt "machine_max_jerk_e description" +msgid "Default jerk for the motor of the filament." +msgstr "耗材电机的默认抖动速度。" + +#: fdmprinter.def.json +msgctxt "machine_minimum_feedrate label" +msgid "Minimum Feedrate" +msgstr "最小进料速率" + +#: fdmprinter.def.json +msgctxt "machine_minimum_feedrate description" +msgid "The minimal movement speed of the print head." +msgstr "打印头的最低移动速度。" + +#: fdmprinter.def.json +msgctxt "resolution label" +msgid "Quality" +msgstr "质量" + +#: fdmprinter.def.json +msgctxt "resolution description" +msgid "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)" +msgstr "影响打印分辨率的所有设置。 这些设置会对质量(和打印时间)产生显著影响" + +#: fdmprinter.def.json +msgctxt "layer_height label" +msgid "Layer Height" +msgstr "层高" + +#: fdmprinter.def.json +msgctxt "layer_height description" +msgid "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution." +msgstr "每层的高度(以毫米为单位)。值越高,则打印速度越快,分辨率越低;值越低,则打印速度越慢,分辨率越高。" + +#: fdmprinter.def.json +msgctxt "layer_height_0 label" +msgid "Initial Layer Height" +msgstr "起始层高" + +#: fdmprinter.def.json +msgctxt "layer_height_0 description" +msgid "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier." +msgstr "起始层高(以毫米为单位)。起始层越厚,与打印平台的粘着越轻松。" + +#: fdmprinter.def.json +msgctxt "line_width label" +msgid "Line Width" +msgstr "走线宽度" + +#: fdmprinter.def.json +msgctxt "line_width description" +msgid "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints." +msgstr "单一走线宽度。 一般而言,每条走线的宽度应与喷嘴的宽度对应。 但是,稍微降低此值可以产生更好的打印成果。" + +#: fdmprinter.def.json +msgctxt "wall_line_width label" +msgid "Wall Line Width" +msgstr "走线宽度(壁)" + +#: fdmprinter.def.json +msgctxt "wall_line_width description" +msgid "Width of a single wall line." +msgstr "单一壁线宽度。" + +#: fdmprinter.def.json +msgctxt "wall_line_width_0 label" +msgid "Outer Wall Line Width" +msgstr "走线宽度(外壁)" + +#: fdmprinter.def.json +msgctxt "wall_line_width_0 description" +msgid "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed." +msgstr "最外壁线宽度。 降低此值,可打印出更高水平的细节。" + +#: fdmprinter.def.json +msgctxt "wall_line_width_x label" +msgid "Inner Wall(s) Line Width" +msgstr "走线宽度(内壁)" + +#: fdmprinter.def.json +msgctxt "wall_line_width_x description" +msgid "Width of a single wall line for all wall lines except the outermost one." +msgstr "适用于所有壁线(最外壁线除外)的单一壁线宽度。" + +#: fdmprinter.def.json +msgctxt "roofing_line_width label" +msgid "Top Surface Skin Line Width" +msgstr "顶部表面皮肤线宽" + +#: fdmprinter.def.json +msgctxt "roofing_line_width description" +msgid "Width of a single line of the areas at the top of the print." +msgstr "打印顶部区域单一走线宽度。" + +#: fdmprinter.def.json +msgctxt "skin_line_width label" +msgid "Top/Bottom Line Width" +msgstr "走线宽度(顶层 / 底层)" + +#: fdmprinter.def.json +msgctxt "skin_line_width description" +msgid "Width of a single top/bottom line." +msgstr "单一顶层/底层走线宽度。" + +#: fdmprinter.def.json +msgctxt "infill_line_width label" +msgid "Infill Line Width" +msgstr "走线宽度(填充)" + +#: fdmprinter.def.json +msgctxt "infill_line_width description" +msgid "Width of a single infill line." +msgstr "单一填充走线宽度。" + +#: fdmprinter.def.json +msgctxt "skirt_brim_line_width label" +msgid "Skirt/Brim Line Width" +msgstr "走线宽度(Skirt / Brim)" + +#: fdmprinter.def.json +msgctxt "skirt_brim_line_width description" +msgid "Width of a single skirt or brim line." +msgstr "单一 skirt(裙摆)或 brim(边缘)走线宽度。" + +#: fdmprinter.def.json +msgctxt "support_line_width label" +msgid "Support Line Width" +msgstr "走线宽度(支撑结构)" + +#: fdmprinter.def.json +msgctxt "support_line_width description" +msgid "Width of a single support structure line." +msgstr "单一支撑结构走线宽度。" + +#: fdmprinter.def.json +msgctxt "support_interface_line_width label" +msgid "Support Interface Line Width" +msgstr "走线宽度(支撑接触面)" + +#: fdmprinter.def.json +msgctxt "support_interface_line_width description" +msgid "Width of a single line of support roof or floor." +msgstr "支撑顶板或底板单一走线宽度。" + +#: fdmprinter.def.json +msgctxt "support_roof_line_width label" +msgid "Support Roof Line Width" +msgstr "支撑顶板走线宽度" + +#: fdmprinter.def.json +msgctxt "support_roof_line_width description" +msgid "Width of a single support roof line." +msgstr "单一支撑顶板走线宽度。" + +#: fdmprinter.def.json +msgctxt "support_bottom_line_width label" +msgid "Support Floor Line Width" +msgstr "支撑底板走线宽度" + +#: fdmprinter.def.json +msgctxt "support_bottom_line_width description" +msgid "Width of a single support floor line." +msgstr "单一支撑底板走线宽度。" + +#: fdmprinter.def.json +msgctxt "prime_tower_line_width label" +msgid "Prime Tower Line Width" +msgstr "装填塔走线宽度。" + +#: fdmprinter.def.json +msgctxt "prime_tower_line_width description" +msgid "Width of a single prime tower line." +msgstr "单一装填走线宽度。" + +#: fdmprinter.def.json +msgctxt "initial_layer_line_width_factor label" +msgid "Initial Layer Line Width" +msgstr "起始层走线宽度" + +#: fdmprinter.def.json +msgctxt "initial_layer_line_width_factor description" +msgid "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion." +msgstr "第一层走线宽度乘数。 增大此乘数可改善热床粘着。" + +#: fdmprinter.def.json +msgctxt "shell label" +msgid "Shell" +msgstr "外壳" + +#: fdmprinter.def.json +msgctxt "shell description" +msgid "Shell" +msgstr "外壳" + +#: fdmprinter.def.json +msgctxt "wall_0_extruder_nr label" +msgid "Outer Wall Extruder" +msgstr "外壁挤出机" + +#: fdmprinter.def.json +msgctxt "wall_0_extruder_nr description" +msgid "The extruder train used for printing the outer wall. This is used in multi-extrusion." +msgstr "用于打印外壁的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "wall_x_extruder_nr label" +msgid "Inner Walls Extruder" +msgstr "内壁挤出机" + +#: fdmprinter.def.json +msgctxt "wall_x_extruder_nr description" +msgid "The extruder train used for printing the inner walls. This is used in multi-extrusion." +msgstr "用于打印内壁的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "wall_thickness label" +msgid "Wall Thickness" +msgstr "壁厚" + +#: fdmprinter.def.json +msgctxt "wall_thickness description" +msgid "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls." +msgstr "水平方向的壁厚度。 此值除以壁线宽度定义壁数量。" + +#: fdmprinter.def.json +msgctxt "wall_line_count label" +msgid "Wall Line Count" +msgstr "壁走线次数" + +#: fdmprinter.def.json +msgctxt "wall_line_count description" +msgid "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number." +msgstr "壁数量。 在按壁厚计算时,该值舍入为整数。" + +#: fdmprinter.def.json +msgctxt "wall_0_wipe_dist label" +msgid "Outer Wall Wipe Distance" +msgstr "外壁擦嘴长度" + +#: fdmprinter.def.json +msgctxt "wall_0_wipe_dist description" +msgid "Distance of a travel move inserted after the outer wall, to hide the Z seam better." +msgstr "插入外壁后的空驶距离,旨在更好地隐藏 Z 缝。" + +#: fdmprinter.def.json +msgctxt "roofing_extruder_nr label" +msgid "Top Surface Skin Extruder" +msgstr "顶部皮肤挤出机" + +#: fdmprinter.def.json +msgctxt "roofing_extruder_nr description" +msgid "The extruder train used for printing the top most skin. This is used in multi-extrusion." +msgstr "用于打印最顶部皮肤的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "roofing_layer_count label" +msgid "Top Surface Skin Layers" +msgstr "顶部表面皮肤层" + +#: fdmprinter.def.json +msgctxt "roofing_layer_count description" +msgid "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces." +msgstr "最顶部皮肤层数。 通常只需一层最顶层就足以生成较高质量的顶部表面。" + +#: fdmprinter.def.json +msgctxt "roofing_pattern label" +msgid "Top Surface Skin Pattern" +msgstr "顶部表面皮肤图案" + +#: fdmprinter.def.json +msgctxt "roofing_pattern description" +msgid "The pattern of the top most layers." +msgstr "最顶层图案。" + +#: fdmprinter.def.json +msgctxt "roofing_pattern option lines" +msgid "Lines" +msgstr "走线" + +#: fdmprinter.def.json +msgctxt "roofing_pattern option concentric" +msgid "Concentric" +msgstr "同心" + +#: fdmprinter.def.json +msgctxt "roofing_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿形" + +#: fdmprinter.def.json +msgctxt "roofing_angles label" +msgid "Top Surface Skin Line Directions" +msgstr "顶部表面皮肤走线方向" + +#: fdmprinter.def.json +msgctxt "roofing_angles description" +msgid "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." +msgstr "当顶部表面皮肤层采用线条或锯齿状图案时使用的整数走线方向的列表。 列表中的元素随层的进度依次使用,当达到列表末尾时,它将从头开始。 列表项以逗号分隔,整个列表包含在方括号中。 默认是一个空列表,即意味着使用传统的默认角度(45 和 135 度)。" + +#: fdmprinter.def.json +msgctxt "top_bottom_extruder_nr label" +msgid "Top/Bottom Extruder" +msgstr "顶部/底部挤出机" + +#: fdmprinter.def.json +msgctxt "top_bottom_extruder_nr description" +msgid "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion." +msgstr "用于打印顶部和底部皮肤的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "top_bottom_thickness label" +msgid "Top/Bottom Thickness" +msgstr "顶层 / 底层厚度" + +#: fdmprinter.def.json +msgctxt "top_bottom_thickness description" +msgid "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers." +msgstr "打印品中顶层/底层的厚度。 该值除以层高定义顶层/底层的数量。" + +#: fdmprinter.def.json +msgctxt "top_thickness label" +msgid "Top Thickness" +msgstr "顶层厚度" + +#: fdmprinter.def.json +msgctxt "top_thickness description" +msgid "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers." +msgstr "打印品中顶层的厚度。 该值除以层高定义顶层的数量。" + +#: fdmprinter.def.json +msgctxt "top_layers label" +msgid "Top Layers" +msgstr "顶部层数" + +#: fdmprinter.def.json +msgctxt "top_layers description" +msgid "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number." +msgstr "顶层的数量。 在按顶层厚度计算时,该值舍入为整数。" + +#: fdmprinter.def.json +msgctxt "bottom_thickness label" +msgid "Bottom Thickness" +msgstr "底层厚度" + +#: fdmprinter.def.json +msgctxt "bottom_thickness description" +msgid "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers." +msgstr "打印品中底层的厚度。 此值除以层高定义底层数量。" + +#: fdmprinter.def.json +msgctxt "bottom_layers label" +msgid "Bottom Layers" +msgstr "底部层数" + +#: fdmprinter.def.json +msgctxt "bottom_layers description" +msgid "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number." +msgstr "底层的数量。 在按底层厚度计算时,该值舍入为整数。" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern label" +msgid "Top/Bottom Pattern" +msgstr "顶部 / 底部走线图案" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern description" +msgid "The pattern of the top/bottom layers." +msgstr "顶层/底层图案。" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern option lines" +msgid "Lines" +msgstr "直线" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern option concentric" +msgid "Concentric" +msgstr "同心圆" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zig Zag" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern_0 label" +msgid "Bottom Pattern Initial Layer" +msgstr "底层图案起始层" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern_0 description" +msgid "The pattern on the bottom of the print on the first layer." +msgstr "打印品底部第一层上的图案。" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern_0 option lines" +msgid "Lines" +msgstr "直线" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern_0 option concentric" +msgid "Concentric" +msgstr "同心圆" + +#: fdmprinter.def.json +msgctxt "top_bottom_pattern_0 option zigzag" +msgid "Zig Zag" +msgstr "Zig Zag" + +#: fdmprinter.def.json +msgctxt "skin_angles label" +msgid "Top/Bottom Line Directions" +msgstr "顶层/底层走线方向" + +#: fdmprinter.def.json +msgctxt "skin_angles description" +msgid "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." +msgstr "当顶层/底层采用线条或锯齿状图案时使用的整数走线方向的列表。 列表中的元素随层的进度依次使用,当达到列表末尾时,它将从头开始。 列表项以逗号分隔,整个列表包含在方括号中。 默认是一个空列表,即意味着使用传统的默认角度(45 和 135 度)。" + +#: fdmprinter.def.json +msgctxt "wall_0_inset label" +msgid "Outer Wall Inset" +msgstr "外壁嵌入" + +#: fdmprinter.def.json +msgctxt "wall_0_inset description" +msgid "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model." +msgstr "应用在外壁路径上的嵌入。 如果外壁小于喷嘴,并且在内壁之后打印,则使用该偏移量来使喷嘴中的孔与内壁而不是模型外部重叠。" + +#: fdmprinter.def.json +msgctxt "outer_inset_first label" +msgid "Outer Before Inner Walls" +msgstr "先外壁后内壁" + +#: fdmprinter.def.json +msgctxt "outer_inset_first description" +msgid "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs." +msgstr "启用时以从外向内的顺序打印壁。 当使用高粘度塑料如 ABS 时,这有助于提高 X 和 Y 的尺寸精度;但是,它可能会降低外表面打印质量,特别是在悬垂部分。" + +#: fdmprinter.def.json +msgctxt "alternate_extra_perimeter label" +msgid "Alternate Extra Wall" +msgstr "交替备用壁" + +#: fdmprinter.def.json +msgctxt "alternate_extra_perimeter description" +msgid "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints." +msgstr "每隔一层打印一个额外的壁。 通过这种方法,填充物会卡在这些额外的壁之间,从而产生更强韧的打印质量。" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_enabled label" +msgid "Compensate Wall Overlaps" +msgstr "补偿壁重叠" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_enabled description" +msgid "Compensate the flow for parts of a wall being printed where there is already a wall in place." +msgstr "在壁已经存在时补偿所打印壁部分的流量。" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_0_enabled label" +msgid "Compensate Outer Wall Overlaps" +msgstr "补偿外壁重叠" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_0_enabled description" +msgid "Compensate the flow for parts of an outer wall being printed where there is already a wall in place." +msgstr "在外壁已经存在时补偿所打印外壁部分的流量。" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_x_enabled label" +msgid "Compensate Inner Wall Overlaps" +msgstr "补偿内壁重叠" + +#: fdmprinter.def.json +msgctxt "travel_compensate_overlapping_walls_x_enabled description" +msgid "Compensate the flow for parts of an inner wall being printed where there is already a wall in place." +msgstr "在内壁已经存在时补偿所打印内壁部分的流量。" + +#: fdmprinter.def.json +msgctxt "fill_perimeter_gaps label" +msgid "Fill Gaps Between Walls" +msgstr "填充壁之间空隙" + +#: fdmprinter.def.json +msgctxt "fill_perimeter_gaps description" +msgid "Fills the gaps between walls where no walls fit." +msgstr "在没有墙壁适合的位置填充墙壁之间的间隙。" + +#: fdmprinter.def.json +msgctxt "fill_perimeter_gaps option nowhere" +msgid "Nowhere" +msgstr "都不填充" + +#: fdmprinter.def.json +msgctxt "fill_perimeter_gaps option everywhere" +msgid "Everywhere" +msgstr "全部填充" + +#: fdmprinter.def.json +msgctxt "fill_outline_gaps label" +msgid "Print Thin Walls" +msgstr "打印薄壁" + +#: fdmprinter.def.json +msgctxt "fill_outline_gaps description" +msgid "Print pieces of the model which are horizontally thinner than the nozzle size." +msgstr "打印在水平面上比喷嘴尺寸更薄的模型部件。" + +#: fdmprinter.def.json +msgctxt "xy_offset label" +msgid "Horizontal Expansion" +msgstr "水平扩展" + +#: fdmprinter.def.json +msgctxt "xy_offset description" +msgid "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes." +msgstr "应用到每一层所有多边形的偏移量。 正数值可以补偿过大的孔洞;负数值可以补偿过小的孔洞。" + +#: fdmprinter.def.json +msgctxt "xy_offset_layer_0 label" +msgid "Initial Layer Horizontal Expansion" +msgstr "起始层水平扩展" + +#: fdmprinter.def.json +msgctxt "xy_offset_layer_0 description" +msgid "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\"." +msgstr "应用到第一层所有多边形的偏移量。 负数值可以补偿第一层的压扁量(被称为“象脚”)。" + +#: fdmprinter.def.json +msgctxt "z_seam_type label" +msgid "Z Seam Alignment" +msgstr "Z 缝对齐" + +#: fdmprinter.def.json +msgctxt "z_seam_type description" +msgid "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker." +msgstr "一层中每条路径的起点。 当连续多层的路径从相同点开始时,则打印物上会显示一条垂直缝隙。 如果将这些路径靠近一个用户指定的位置对齐,则缝隙最容易移除。 如果随机放置,则路径起点的不精准度将较不明显。 采用最短的路径时,打印将更为快速。" + +#: fdmprinter.def.json +msgctxt "z_seam_type option back" +msgid "User Specified" +msgstr "用户指定" + +#: fdmprinter.def.json +msgctxt "z_seam_type option shortest" +msgid "Shortest" +msgstr "最短" + +#: fdmprinter.def.json +msgctxt "z_seam_type option random" +msgid "Random" +msgstr "随机" + +#: fdmprinter.def.json +msgctxt "z_seam_type option sharpest_corner" +msgid "Sharpest Corner" +msgstr "最尖角" + +#: fdmprinter.def.json +msgctxt "z_seam_x label" +msgid "Z Seam X" +msgstr "Z 缝 X" + +#: fdmprinter.def.json +msgctxt "z_seam_x description" +msgid "The X coordinate of the position near where to start printing each part in a layer." +msgstr "位置的 X 轴坐标,在该位置附近开始打印层中各个部分。" + +#: fdmprinter.def.json +msgctxt "z_seam_y label" +msgid "Z Seam Y" +msgstr "Z 缝 Y" + +#: fdmprinter.def.json +msgctxt "z_seam_y description" +msgid "The Y coordinate of the position near where to start printing each part in a layer." +msgstr "位置的 Y 轴坐标,在该位置附近开始打印层中各个部分。" + +#: fdmprinter.def.json +msgctxt "z_seam_corner label" +msgid "Seam Corner Preference" +msgstr "缝隙角偏好设置" + +#: fdmprinter.def.json +msgctxt "z_seam_corner description" +msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner." +msgstr "控制模型轮廓上的各个角是否影响缝隙的位置。 “无”意味着各个角不影响缝隙位置。 “隐藏缝隙”会使缝隙更可能出现在内侧角上。 “外露缝隙”会使缝隙更可能出现在外侧角上。 “隐藏或外露缝隙”会使缝隙更可能出现在内侧或外侧角上。" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_none" +msgid "None" +msgstr "无" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_inner" +msgid "Hide Seam" +msgstr "隐藏缝隙" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_outer" +msgid "Expose Seam" +msgstr "外露缝隙" + +#: fdmprinter.def.json +msgctxt "z_seam_corner option z_seam_corner_any" +msgid "Hide or Expose Seam" +msgstr "隐藏或外露缝隙" + +#: fdmprinter.def.json +msgctxt "z_seam_relative label" +msgid "Z Seam Relative" +msgstr "Z 缝相对" + +#: fdmprinter.def.json +msgctxt "z_seam_relative description" +msgid "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate." +msgstr "启用时,Z 缝坐标为相对于各个部分中心的值。 禁用时,坐标定义打印平台上的一个绝对位置。" + +#: fdmprinter.def.json +msgctxt "skin_no_small_gaps_heuristic label" +msgid "Ignore Small Z Gaps" +msgstr "忽略小 Z 间隙" + +#: fdmprinter.def.json +msgctxt "skin_no_small_gaps_heuristic description" +msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." +msgstr "当模型具有小的垂直间隙时,可能会花费大约 5% 的额外计算时间来生成这些狭窄空间中的顶部和底部皮肤。 这种情况下,禁用该设置。" + +#: fdmprinter.def.json +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "额外皮肤壁计数" + +#: fdmprinter.def.json +msgctxt "skin_outline_count description" +msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." +msgstr "用多个同心线代替顶部/底部图案的最外面部分。 使用一条或两条线改善从填充材料开始的顶板。" + +#: fdmprinter.def.json +msgctxt "infill label" +msgid "Infill" +msgstr "填充" + +#: fdmprinter.def.json +msgctxt "infill description" +msgid "Infill" +msgstr "填充" + +#: fdmprinter.def.json +msgctxt "infill_extruder_nr label" +msgid "Infill Extruder" +msgstr "填充挤出机" + +#: fdmprinter.def.json +msgctxt "infill_extruder_nr description" +msgid "The extruder train used for printing infill. This is used in multi-extrusion." +msgstr "用于打印填充的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "infill_sparse_density label" +msgid "Infill Density" +msgstr "填充密度" + +#: fdmprinter.def.json +msgctxt "infill_sparse_density description" +msgid "Adjusts the density of infill of the print." +msgstr "调整打印填充的密度。" + +#: fdmprinter.def.json +msgctxt "infill_line_distance label" +msgid "Infill Line Distance" +msgstr "填充走线距离" + +#: fdmprinter.def.json +msgctxt "infill_line_distance description" +msgid "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width." +msgstr "打印填充走线之间的距离。 该设置是通过填充密度和填充线宽度计算。" + +#: fdmprinter.def.json +msgctxt "infill_pattern label" +msgid "Infill Pattern" +msgstr "填充图案" + +#: fdmprinter.def.json +msgctxt "infill_pattern description" +msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." +msgstr "打印填充材料的图案。 线条和锯齿形填充在交替层上交换方向,从而降低材料成本。 网格、三角形、立方体、八角形、四面体和同心图案在每层完整打印。 立方体、四面体和八角形填充随每层变化,以在各个方向提供更均衡的强度分布。" + +#: fdmprinter.def.json +msgctxt "infill_pattern option grid" +msgid "Grid" +msgstr "网格" + +#: fdmprinter.def.json +msgctxt "infill_pattern option lines" +msgid "Lines" +msgstr "直线" + +#: fdmprinter.def.json +msgctxt "infill_pattern option triangles" +msgid "Triangles" +msgstr "三角形" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cubic" +msgid "Cubic" +msgstr "立方体" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cubicsubdiv" +msgid "Cubic Subdivision" +msgstr "立方体分区" + +#: fdmprinter.def.json +msgctxt "infill_pattern option tetrahedral" +msgid "Octet" +msgstr "八角形" + +#: fdmprinter.def.json +msgctxt "infill_pattern option quarter_cubic" +msgid "Quarter Cubic" +msgstr "四面体" + +#: fdmprinter.def.json +msgctxt "infill_pattern option concentric" +msgid "Concentric" +msgstr "同心圆" + +#: fdmprinter.def.json +msgctxt "infill_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "立体同心圆" + +#: fdmprinter.def.json +msgctxt "infill_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿状" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross" +msgid "Cross" +msgstr "交叉" + +#: fdmprinter.def.json +msgctxt "infill_pattern option cross_3d" +msgid "Cross 3D" +msgstr "交叉 3D" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill label" +msgid "Connect Infill Lines" +msgstr "连接填充走线" + +#: fdmprinter.def.json +msgctxt "zig_zaggify_infill description" +msgid "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used." +msgstr "使用沿内壁形状的走线连接填充图案与内壁相接的各端。 启用此设置会使填充更好地粘着在壁上,减少填充物效果对垂直表面质量的影响。 禁用此设置可减少使用的材料量。" + +#: fdmprinter.def.json +msgctxt "infill_angles label" +msgid "Infill Line Directions" +msgstr "填充走线方向" + +#: fdmprinter.def.json +msgctxt "infill_angles description" +msgid "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns)." +msgstr "要使用的整数走线方向列表。 列表中的元素随层的进度依次使用,当达到列表末尾时,它将从头开始。 列表项以逗号分隔,整个列表包含在方括号中。 默认是一个空列表,即意味着使用传统的默认角度(线条和锯齿形图案为 45 和 135 度,其他所有图案为 45 度)。" + +#: fdmprinter.def.json +msgctxt "sub_div_rad_add label" +msgid "Cubic Subdivision Shell" +msgstr "立方体分区外壳" + +#: fdmprinter.def.json +msgctxt "sub_div_rad_add description" +msgid "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model." +msgstr "从每个立方体的中心对半径进行添加,以检查模型的边界,进而决定是否应对此立方体进行分区。 值越大则模型边界附近的小型立方体外壳越厚。" + +#: fdmprinter.def.json +msgctxt "infill_overlap label" +msgid "Infill Overlap Percentage" +msgstr "填充重叠百分比" + +#: fdmprinter.def.json +msgctxt "infill_overlap description" +msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." +msgstr "填充物和壁之间的重叠量。 稍微重叠可让各个壁与填充物牢固连接。" + +#: fdmprinter.def.json +msgctxt "infill_overlap_mm label" +msgid "Infill Overlap" +msgstr "填充重叠" + +#: fdmprinter.def.json +msgctxt "infill_overlap_mm description" +msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." +msgstr "填充物和壁之间的重叠量。 稍微重叠可让各个壁与填充物牢固连接。" + +#: fdmprinter.def.json +msgctxt "skin_overlap label" +msgid "Skin Overlap Percentage" +msgstr "皮肤重叠百分比" + +#: fdmprinter.def.json +msgctxt "skin_overlap description" +msgid "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall." +msgstr "皮肤和壁之间的重叠量,以走线宽度百分比表示。 稍微重叠可让各个壁与皮肤牢固连接。 这是皮肤线平均走线宽度和最内壁的百分比。" + +#: fdmprinter.def.json +msgctxt "skin_overlap_mm label" +msgid "Skin Overlap" +msgstr "皮肤重叠" + +#: fdmprinter.def.json +msgctxt "skin_overlap_mm description" +msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." +msgstr "皮肤和壁之间的重叠量。 稍微重叠可让各个壁与皮肤牢固连接。" + +#: fdmprinter.def.json +msgctxt "infill_wipe_dist label" +msgid "Infill Wipe Distance" +msgstr "填充物擦拭距离" + +#: fdmprinter.def.json +msgctxt "infill_wipe_dist description" +msgid "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line." +msgstr "每条填充走线后插入的空驶距离,让填充物更好地粘着到壁上。 此选项与填充重叠类似,但没有挤出,且仅位于填充走线的一端。" + +#: fdmprinter.def.json +msgctxt "infill_sparse_thickness label" +msgid "Infill Layer Thickness" +msgstr "填充层厚度" + +#: fdmprinter.def.json +msgctxt "infill_sparse_thickness description" +msgid "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded." +msgstr "填充材料每层的厚度。 该值应始终为层高的乘数,否则应进行舍入。" + +#: fdmprinter.def.json +msgctxt "gradual_infill_steps label" +msgid "Gradual Infill Steps" +msgstr "渐进填充步阶" + +#: fdmprinter.def.json +msgctxt "gradual_infill_steps description" +msgid "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density." +msgstr "在进入顶部表面以下时,将填充密度减少一半的次数。 越靠近顶面的区域密度越高,最高达到填充密度。" + +#: fdmprinter.def.json +msgctxt "gradual_infill_step_height label" +msgid "Gradual Infill Step Height" +msgstr "渐进填充步阶高度" + +#: fdmprinter.def.json +msgctxt "gradual_infill_step_height description" +msgid "The height of infill of a given density before switching to half the density." +msgstr "在切换至密度的一半前指定密度的填充高度。" + +#: fdmprinter.def.json +msgctxt "infill_before_walls label" +msgid "Infill Before Walls" +msgstr "先填充物后壁" + +#: fdmprinter.def.json +msgctxt "infill_before_walls description" +msgid "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface." +msgstr "打印壁前先打印填充物。 先打印壁可能产生更精确的壁,但悬垂打印质量会较差。 先打印填充会产生更牢固的壁,但有时候填充图案会透过表面显现出来。" + +#: fdmprinter.def.json +msgctxt "min_infill_area label" +msgid "Minimum Infill Area" +msgstr "最小填充区域" + +#: fdmprinter.def.json +msgctxt "min_infill_area description" +msgid "Don't generate areas of infill smaller than this (use skin instead)." +msgstr "不要生成小于此面积的填充区域(使用皮肤取代)。" + +#: fdmprinter.def.json +msgctxt "skin_preshrink label" +msgid "Skin Removal Width" +msgstr "肤移除宽度" + +#: fdmprinter.def.json +msgctxt "skin_preshrink description" +msgid "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model." +msgstr "将被移除的皮肤区域的最大宽度。 小于此值的所有皮肤区域都将消失。 这有助于限制在模型的倾斜表面打印顶部/底部皮肤时所耗用的时间和材料。" + +#: fdmprinter.def.json +msgctxt "top_skin_preshrink label" +msgid "Top Skin Removal Width" +msgstr "顶部皮肤移除宽度" + +#: fdmprinter.def.json +msgctxt "top_skin_preshrink description" +msgid "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model." +msgstr "将被移除的顶部皮肤区域的最大宽度。 小于此值的所有皮肤区域都将消失。 这有助于限制在模型的倾斜表面打印顶部皮肤时所耗用的时间和材料。" + +#: fdmprinter.def.json +msgctxt "bottom_skin_preshrink label" +msgid "Bottom Skin Removal Width" +msgstr "底部皮肤移除宽度" + +#: fdmprinter.def.json +msgctxt "bottom_skin_preshrink description" +msgid "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model." +msgstr "将被移除的底部皮肤区域的最大宽度。 小于此值的所有皮肤区域都将消失。 这有助于限制在模型的倾斜表面打印底部皮肤时所耗用的时间和材料。" + +#: fdmprinter.def.json +msgctxt "expand_skins_expand_distance label" +msgid "Skin Expand Distance" +msgstr "皮肤扩展距离" + +#: fdmprinter.def.json +msgctxt "expand_skins_expand_distance description" +msgid "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used." +msgstr "皮肤扩展到填充物中的距离。 值越大会让皮肤与填充图案更好地附着,并让相邻层的层壁与皮肤更好地粘着。 较低的值将节省所用的材料量。" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance label" +msgid "Top Skin Expand Distance" +msgstr "顶部皮肤扩展距离" + +#: fdmprinter.def.json +msgctxt "top_skin_expand_distance description" +msgid "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used." +msgstr "顶部皮肤扩展到填充物中的距离。 值越大会让皮肤与填充图案更好地附着,并让上方层的层壁与皮肤更好地粘着。 较低的值将节省所用的材料量。" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance label" +msgid "Bottom Skin Expand Distance" +msgstr "底部皮肤扩展距离" + +#: fdmprinter.def.json +msgctxt "bottom_skin_expand_distance description" +msgid "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used." +msgstr "底部皮肤扩展到填充物中的距离。 值越大会让皮肤与填充图案更好地附着,并让皮肤与下面层的壁更好地粘着。 较低的值将节省所用的材料量。" + +#: fdmprinter.def.json +msgctxt "max_skin_angle_for_expansion label" +msgid "Maximum Skin Angle for Expansion" +msgstr "最大扩展皮肤角度" + +#: fdmprinter.def.json +msgctxt "max_skin_angle_for_expansion description" +msgid "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical." +msgstr "如果模型的顶部和/或底部表面的角度大于此设置,则不要扩展其顶部/底部皮肤。 这会避免扩展在模型表面有接近垂直的坡度时所形成的狭窄皮肤区域。 0° 的角为水平,90° 的角为垂直。" + +#: fdmprinter.def.json +msgctxt "min_skin_width_for_expansion label" +msgid "Minimum Skin Width for Expansion" +msgstr "最小扩展皮肤宽度" + +#: fdmprinter.def.json +msgctxt "min_skin_width_for_expansion description" +msgid "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical." +msgstr "如果皮肤区域宽度小于此值,则不会扩展。 这会避免扩展在模型表面的坡度接近垂直时所形成的狭窄皮肤区域。" + +#: fdmprinter.def.json +msgctxt "material label" +msgid "Material" +msgstr "材料" + +#: fdmprinter.def.json +msgctxt "material description" +msgid "Material" +msgstr "材料" + +#: fdmprinter.def.json +msgctxt "material_flow_dependent_temperature label" +msgid "Auto Temperature" +msgstr "自动温度" + +#: fdmprinter.def.json +msgctxt "material_flow_dependent_temperature description" +msgid "Change the temperature for each layer automatically with the average flow speed of that layer." +msgstr "根据每一层的平均流速自动更改每层的温度。" + +#: fdmprinter.def.json +msgctxt "default_material_print_temperature label" +msgid "Default Printing Temperature" +msgstr "默认打印温度" + +#: fdmprinter.def.json +msgctxt "default_material_print_temperature description" +msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" +msgstr "用于打印的默认温度。 应为材料的\"基本\"温度。 所有其他打印温度均应使用基于此值的偏移量" + +#: fdmprinter.def.json +msgctxt "material_print_temperature label" +msgid "Printing Temperature" +msgstr "打印温度" + +#: fdmprinter.def.json +msgctxt "material_print_temperature description" +msgid "The temperature used for printing." +msgstr "用于打印的温度。" + +#: fdmprinter.def.json +msgctxt "material_print_temperature_layer_0 label" +msgid "Printing Temperature Initial Layer" +msgstr "打印温度起始层" + +#: fdmprinter.def.json +msgctxt "material_print_temperature_layer_0 description" +msgid "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer." +msgstr "用于打印第一层的温度。 设为 0 即禁用对起始层的特别处理。" + +#: fdmprinter.def.json +msgctxt "material_initial_print_temperature label" +msgid "Initial Printing Temperature" +msgstr "起始打印温度" + +#: fdmprinter.def.json +msgctxt "material_initial_print_temperature description" +msgid "The minimal temperature while heating up to the Printing Temperature at which printing can already start." +msgstr "加热到可以开始打印的打印温度时的最低温度。" + +#: fdmprinter.def.json +msgctxt "material_final_print_temperature label" +msgid "Final Printing Temperature" +msgstr "最终打印温度" + +#: fdmprinter.def.json +msgctxt "material_final_print_temperature description" +msgid "The temperature to which to already start cooling down just before the end of printing." +msgstr "打印结束前开始冷却的温度。" + +#: fdmprinter.def.json +msgctxt "material_flow_temp_graph label" +msgid "Flow Temperature Graph" +msgstr "流量温度图" + +#: fdmprinter.def.json +msgctxt "material_flow_temp_graph description" +msgid "Data linking material flow (in mm3 per second) to temperature (degrees Celsius)." +msgstr "数据连接材料流量(mm3/s)到温度(摄氏度)。" + +#: fdmprinter.def.json +msgctxt "material_extrusion_cool_down_speed label" +msgid "Extrusion Cool Down Speed Modifier" +msgstr "挤出冷却速度调节器" + +#: fdmprinter.def.json +msgctxt "material_extrusion_cool_down_speed description" +msgid "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding." +msgstr "挤出时喷嘴冷却的额外速度。 使用相同的值表示挤出过程中进行加热时的加热速度损失。" + +#: fdmprinter.def.json +msgctxt "material_bed_temperature label" +msgid "Build Plate Temperature" +msgstr "打印平台温度" + +#: fdmprinter.def.json +msgctxt "material_bed_temperature description" +msgid "The temperature used for the heated build plate. If this is 0, the bed will not heat up for this print." +msgstr "用于加热打印平台的温度。 如果打印平台温度为 0,则热床将不会为此次打印加热。" + +#: fdmprinter.def.json +msgctxt "material_bed_temperature_layer_0 label" +msgid "Build Plate Temperature Initial Layer" +msgstr "打印平台温度起始层" + +#: fdmprinter.def.json +msgctxt "material_bed_temperature_layer_0 description" +msgid "The temperature used for the heated build plate at the first layer." +msgstr "用于第一层加热打印平台的温度。" + +#: fdmprinter.def.json +msgctxt "material_diameter label" +msgid "Diameter" +msgstr "直径" + +#: fdmprinter.def.json +msgctxt "material_diameter description" +msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament." +msgstr "调整所用耗材的直径。 将此值与所用耗材的直径匹配。" + +#: fdmprinter.def.json +msgctxt "material_flow label" +msgid "Flow" +msgstr "流量" + +#: fdmprinter.def.json +msgctxt "material_flow description" +msgid "Flow compensation: the amount of material extruded is multiplied by this value." +msgstr "流量补偿:挤出的材料量乘以此值。" + +#: fdmprinter.def.json +msgctxt "retraction_enable label" +msgid "Enable Retraction" +msgstr "启用回抽" + +#: fdmprinter.def.json +msgctxt "retraction_enable description" +msgid "Retract the filament when the nozzle is moving over a non-printed area. " +msgstr "当喷嘴移动到非打印区域上方时回抽耗材。 " + +#: fdmprinter.def.json +msgctxt "retract_at_layer_change label" +msgid "Retract at Layer Change" +msgstr "层变化时回抽" + +#: fdmprinter.def.json +msgctxt "retract_at_layer_change description" +msgid "Retract the filament when the nozzle is moving to the next layer." +msgstr "当喷嘴移动到下一层时回抽耗材。" + +#: fdmprinter.def.json +msgctxt "retraction_amount label" +msgid "Retraction Distance" +msgstr "回抽距离" + +#: fdmprinter.def.json +msgctxt "retraction_amount description" +msgid "The length of material retracted during a retraction move." +msgstr "回抽移动期间回抽的材料长度。" + +#: fdmprinter.def.json +msgctxt "retraction_speed label" +msgid "Retraction Speed" +msgstr "回抽速度" + +#: fdmprinter.def.json +msgctxt "retraction_speed description" +msgid "The speed at which the filament is retracted and primed during a retraction move." +msgstr "回抽移动期间耗材回抽和装填的速度。" + +#: fdmprinter.def.json +msgctxt "retraction_retract_speed label" +msgid "Retraction Retract Speed" +msgstr "回抽速度" + +#: fdmprinter.def.json +msgctxt "retraction_retract_speed description" +msgid "The speed at which the filament is retracted during a retraction move." +msgstr "回抽移动期间耗材回抽的速度。" + +#: fdmprinter.def.json +msgctxt "retraction_prime_speed label" +msgid "Retraction Prime Speed" +msgstr "回抽装填速度" + +#: fdmprinter.def.json +msgctxt "retraction_prime_speed description" +msgid "The speed at which the filament is primed during a retraction move." +msgstr "回抽移动期间耗材装填的速度。" + +#: fdmprinter.def.json +msgctxt "retraction_extra_prime_amount label" +msgid "Retraction Extra Prime Amount" +msgstr "回抽额外装填量" + +#: fdmprinter.def.json +msgctxt "retraction_extra_prime_amount description" +msgid "Some material can ooze away during a travel move, which can be compensated for here." +msgstr "有些材料可能会在空驶过程中渗出,可以在这里对其进行补偿。" + +#: fdmprinter.def.json +msgctxt "retraction_min_travel label" +msgid "Retraction Minimum Travel" +msgstr "回抽最小空驶" + +#: fdmprinter.def.json +msgctxt "retraction_min_travel description" +msgid "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area." +msgstr "回抽发生所需的最小空驶距离。 这有助于在较小区域内实现更少的回抽。" + +#: fdmprinter.def.json +msgctxt "retraction_count_max label" +msgid "Maximum Retraction Count" +msgstr "最大回抽计数" + +#: fdmprinter.def.json +msgctxt "retraction_count_max description" +msgid "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues." +msgstr "此设置限制在最小挤出距离范围内发生的回抽数。 此范围内的额外回抽将会忽略。 这避免了在同一件耗材上重复回抽,从而导致耗材变扁并引起磨损问题。" + +#: fdmprinter.def.json +msgctxt "retraction_extrusion_window label" +msgid "Minimum Extrusion Distance Window" +msgstr "最小挤出距离范围" + +#: fdmprinter.def.json +msgctxt "retraction_extrusion_window description" +msgid "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited." +msgstr "执行最大回抽计数的范围。 该值应与回抽距离大致相同,以便一次回抽通过同一块材料的次数得到有效限制。" + +#: fdmprinter.def.json +msgctxt "material_standby_temperature label" +msgid "Standby Temperature" +msgstr "待机温度" + +#: fdmprinter.def.json +msgctxt "material_standby_temperature description" +msgid "The temperature of the nozzle when another nozzle is currently used for printing." +msgstr "当另一个喷嘴正用于打印时该喷嘴的温度。" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_amount label" +msgid "Nozzle Switch Retraction Distance" +msgstr "喷嘴切换回抽距离" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_amount description" +msgid "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone." +msgstr "回抽量: 设为 0,不进行任何回抽。 该值通常应与加热区的长度相同。" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_speeds label" +msgid "Nozzle Switch Retraction Speed" +msgstr "喷嘴切换回抽速度" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_speeds description" +msgid "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding." +msgstr "回抽耗材的速度。 较高的回抽速度效果较好,但回抽速度过高可能导致耗材磨损。" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_speed label" +msgid "Nozzle Switch Retract Speed" +msgstr "喷嘴切换回抽速度" + +#: fdmprinter.def.json +msgctxt "switch_extruder_retraction_speed description" +msgid "The speed at which the filament is retracted during a nozzle switch retract." +msgstr "喷嘴切换回抽期间耗材回抽的速度。" + +#: fdmprinter.def.json +msgctxt "switch_extruder_prime_speed label" +msgid "Nozzle Switch Prime Speed" +msgstr "喷嘴切换装填速度" + +#: fdmprinter.def.json +msgctxt "switch_extruder_prime_speed description" +msgid "The speed at which the filament is pushed back after a nozzle switch retraction." +msgstr "喷嘴切换回抽后耗材被推回的速度。" + +#: fdmprinter.def.json +msgctxt "speed label" +msgid "Speed" +msgstr "速度" + +#: fdmprinter.def.json +msgctxt "speed description" +msgid "Speed" +msgstr "速度" + +#: fdmprinter.def.json +msgctxt "speed_print label" +msgid "Print Speed" +msgstr "打印速度" + +#: fdmprinter.def.json +msgctxt "speed_print description" +msgid "The speed at which printing happens." +msgstr "打印发生的速度。" + +#: fdmprinter.def.json +msgctxt "speed_infill label" +msgid "Infill Speed" +msgstr "填充速度" + +#: fdmprinter.def.json +msgctxt "speed_infill description" +msgid "The speed at which infill is printed." +msgstr "打印填充的速度。" + +#: fdmprinter.def.json +msgctxt "speed_wall label" +msgid "Wall Speed" +msgstr "速度(壁)" + +#: fdmprinter.def.json +msgctxt "speed_wall description" +msgid "The speed at which the walls are printed." +msgstr "打印壁的速度。" + +#: fdmprinter.def.json +msgctxt "speed_wall_0 label" +msgid "Outer Wall Speed" +msgstr "速度(外壁)" + +#: fdmprinter.def.json +msgctxt "speed_wall_0 description" +msgid "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way." +msgstr "打印最外壁的速度。 以较低速度打印外壁可改善最终皮肤质量。 但是,如果内壁速度和外壁速度差距过大,则将对质量产生负面影响。" + +#: fdmprinter.def.json +msgctxt "speed_wall_x label" +msgid "Inner Wall Speed" +msgstr "速度(内壁)" + +#: fdmprinter.def.json +msgctxt "speed_wall_x description" +msgid "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed." +msgstr "打印所有内壁的速度。 以比外壁更快的速度打印内壁将减少打印时间。 将该值设为外壁速度和填充速度之间也可行。" + +#: fdmprinter.def.json +msgctxt "speed_roofing label" +msgid "Top Surface Skin Speed" +msgstr "顶部表面皮肤速度" + +#: fdmprinter.def.json +msgctxt "speed_roofing description" +msgid "The speed at which top surface skin layers are printed." +msgstr "打印顶部表面皮肤层的速度。" + +#: fdmprinter.def.json +msgctxt "speed_topbottom label" +msgid "Top/Bottom Speed" +msgstr "速度(顶部 / 底部)" + +#: fdmprinter.def.json +msgctxt "speed_topbottom description" +msgid "The speed at which top/bottom layers are printed." +msgstr "打印顶部/底部层的速度。" + +#: fdmprinter.def.json +msgctxt "speed_support label" +msgid "Support Speed" +msgstr "速度(支撑结构)" + +#: fdmprinter.def.json +msgctxt "speed_support description" +msgid "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing." +msgstr "打印支撑结构的速度。 以更高的速度打印支撑可极大地缩短打印时间。 支撑结构的表面质量并不重要,因为在打印后会将其移除。" + +#: fdmprinter.def.json +msgctxt "speed_support_infill label" +msgid "Support Infill Speed" +msgstr "速度(支撑填充)" + +#: fdmprinter.def.json +msgctxt "speed_support_infill description" +msgid "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability." +msgstr "打印支撑填充物的速度。 以较低的速度打印填充物可改善稳定性。" + +#: fdmprinter.def.json +msgctxt "speed_support_interface label" +msgid "Support Interface Speed" +msgstr "支撑接触面速度" + +#: fdmprinter.def.json +msgctxt "speed_support_interface description" +msgid "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality." +msgstr "打印支撑顶板和底板的速度。 以较低的速度打印可以改善悬垂质量。" + +#: fdmprinter.def.json +msgctxt "speed_support_roof label" +msgid "Support Roof Speed" +msgstr "支撑顶板速度" + +#: fdmprinter.def.json +msgctxt "speed_support_roof description" +msgid "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality." +msgstr "打印支撑顶板的速度。 以较低的速度打印可以改善悬垂质量。" + +#: fdmprinter.def.json +msgctxt "speed_support_bottom label" +msgid "Support Floor Speed" +msgstr "支撑底板速度" + +#: fdmprinter.def.json +msgctxt "speed_support_bottom description" +msgid "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model." +msgstr "打印支撑底板的速度。 以较低的速度打印可以改善支撑在模型顶部的粘着。" + +#: fdmprinter.def.json +msgctxt "speed_prime_tower label" +msgid "Prime Tower Speed" +msgstr "装填塔速度" + +#: fdmprinter.def.json +msgctxt "speed_prime_tower description" +msgid "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal." +msgstr "打印装填塔的速度。 以较慢速度打印装填塔可以在不同耗材之间的粘着欠佳时使其更加稳定。" + +#: fdmprinter.def.json +msgctxt "speed_travel label" +msgid "Travel Speed" +msgstr "空驶速度" + +#: fdmprinter.def.json +msgctxt "speed_travel description" +msgid "The speed at which travel moves are made." +msgstr "进行空驶的速度。" + +#: fdmprinter.def.json +msgctxt "speed_layer_0 label" +msgid "Initial Layer Speed" +msgstr "起始层速度" + +#: fdmprinter.def.json +msgctxt "speed_layer_0 description" +msgid "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate." +msgstr "起始层的速度。 建议采用较低的值以便改善与打印平台的粘着。" + +#: fdmprinter.def.json +msgctxt "speed_print_layer_0 label" +msgid "Initial Layer Print Speed" +msgstr "起始层打印速度" + +#: fdmprinter.def.json +msgctxt "speed_print_layer_0 description" +msgid "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate." +msgstr "打印起始层的速度。 建议采用较低的值以便改善与打印平台的粘着。" + +#: fdmprinter.def.json +msgctxt "speed_travel_layer_0 label" +msgid "Initial Layer Travel Speed" +msgstr "起始层空驶速度" + +#: fdmprinter.def.json +msgctxt "speed_travel_layer_0 description" +msgid "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed." +msgstr "起始层中的空驶速度。 建议采用较低的值,以防止将之前打印的部分从打印平台上拉离。 该设置的值可以根据空驶速度和打印速度的比率自动计算得出。" + +#: fdmprinter.def.json +msgctxt "skirt_brim_speed label" +msgid "Skirt/Brim Speed" +msgstr "Skirt/Brim 速度" + +#: fdmprinter.def.json +msgctxt "skirt_brim_speed description" +msgid "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed." +msgstr "打印 skirt 和 brim 的速度。 一般情况是以起始层速度打印这些部分,但有时候您可能想要以不同速度来打印 skirt 或 brim。" + +#: fdmprinter.def.json +msgctxt "max_feedrate_z_override label" +msgid "Maximum Z Speed" +msgstr "最大 Z 速度" + +#: fdmprinter.def.json +msgctxt "max_feedrate_z_override description" +msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed." +msgstr "打印平台移动的最大速度。 将该值设为零会使打印为最大 Z 速度采用固件默认值。" + +#: fdmprinter.def.json +msgctxt "speed_slowdown_layers label" +msgid "Number of Slower Layers" +msgstr "较慢层的数量" + +#: fdmprinter.def.json +msgctxt "speed_slowdown_layers description" +msgid "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers." +msgstr "前几层的打印速度比模型的其他层慢,以便实现与打印平台的更好粘着,并改善整体的打印成功率。 该速度在这些层中会逐渐增加。" + +#: fdmprinter.def.json +msgctxt "speed_equalize_flow_enabled label" +msgid "Equalize Filament Flow" +msgstr "均衡耗材流量" + +#: fdmprinter.def.json +msgctxt "speed_equalize_flow_enabled description" +msgid "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines." +msgstr "以较快的速度打印比正常走线更细的走线,使每秒挤出的材料量保持相同。 模型中较薄的部分可能需要以低于设置中所提供宽度的走线宽度来打印走线。 该设置控制这些走线的速度变化。" + +#: fdmprinter.def.json +msgctxt "speed_equalize_flow_max label" +msgid "Maximum Speed for Flow Equalization" +msgstr "均流最大速度" + +#: fdmprinter.def.json +msgctxt "speed_equalize_flow_max description" +msgid "Maximum print speed when adjusting the print speed in order to equalize flow." +msgstr "调整打印速度以便均衡流量时的最大打印速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_enabled label" +msgid "Enable Acceleration Control" +msgstr "启用加速度控制" + +#: fdmprinter.def.json +msgctxt "acceleration_enabled description" +msgid "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality." +msgstr "启用调整打印头加速度。 提高加速度可以通过以打印质量为代价来缩短打印时间。" + +#: fdmprinter.def.json +msgctxt "acceleration_print label" +msgid "Print Acceleration" +msgstr "打印加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_print description" +msgid "The acceleration with which printing happens." +msgstr "打印发生的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_infill label" +msgid "Infill Acceleration" +msgstr "填充加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_infill description" +msgid "The acceleration with which infill is printed." +msgstr "打印填充物的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_wall label" +msgid "Wall Acceleration" +msgstr "壁加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_wall description" +msgid "The acceleration with which the walls are printed." +msgstr "打印壁的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_wall_0 label" +msgid "Outer Wall Acceleration" +msgstr "外壁加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_wall_0 description" +msgid "The acceleration with which the outermost walls are printed." +msgstr "打印最外壁的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_wall_x label" +msgid "Inner Wall Acceleration" +msgstr "内壁加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_wall_x description" +msgid "The acceleration with which all inner walls are printed." +msgstr "打印所有内壁的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_roofing label" +msgid "Top Surface Skin Acceleration" +msgstr "顶部表面皮肤加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_roofing description" +msgid "The acceleration with which top surface skin layers are printed." +msgstr "打印顶部表面皮肤层的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_topbottom label" +msgid "Top/Bottom Acceleration" +msgstr "顶部/底部加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_topbottom description" +msgid "The acceleration with which top/bottom layers are printed." +msgstr "打印顶部/底部层的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_support label" +msgid "Support Acceleration" +msgstr "支撑加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_support description" +msgid "The acceleration with which the support structure is printed." +msgstr "打印支撑结构的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_support_infill label" +msgid "Support Infill Acceleration" +msgstr "支撑填充加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_support_infill description" +msgid "The acceleration with which the infill of support is printed." +msgstr "打印支撑填充物的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_support_interface label" +msgid "Support Interface Acceleration" +msgstr "支撑接触面加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_support_interface description" +msgid "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality." +msgstr "打印支撑顶板和底板的加速度。 以较低的加速度打印可以改善悬垂质量。" + +#: fdmprinter.def.json +msgctxt "acceleration_support_roof label" +msgid "Support Roof Acceleration" +msgstr "支撑顶板加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_support_roof description" +msgid "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality." +msgstr "打印支撑顶板的加速度。 以较低的加速度打印可以改善悬垂质量。" + +#: fdmprinter.def.json +msgctxt "acceleration_support_bottom label" +msgid "Support Floor Acceleration" +msgstr "支撑底板加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_support_bottom description" +msgid "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model." +msgstr "打印支撑底板的加速度。 以较低的加速度打印可以改善支撑在模型顶部的粘着。" + +#: fdmprinter.def.json +msgctxt "acceleration_prime_tower label" +msgid "Prime Tower Acceleration" +msgstr "装填塔加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_prime_tower description" +msgid "The acceleration with which the prime tower is printed." +msgstr "打印装填塔的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_travel label" +msgid "Travel Acceleration" +msgstr "空驶加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_travel description" +msgid "The acceleration with which travel moves are made." +msgstr "进行空驶的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_layer_0 label" +msgid "Initial Layer Acceleration" +msgstr "起始层加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_layer_0 description" +msgid "The acceleration for the initial layer." +msgstr "起始层的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_print_layer_0 label" +msgid "Initial Layer Print Acceleration" +msgstr "起始层打印加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_print_layer_0 description" +msgid "The acceleration during the printing of the initial layer." +msgstr "打印起始层时的加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_travel_layer_0 label" +msgid "Initial Layer Travel Acceleration" +msgstr "起始层空驶加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_travel_layer_0 description" +msgid "The acceleration for travel moves in the initial layer." +msgstr "起始层中的空驶加速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_skirt_brim label" +msgid "Skirt/Brim Acceleration" +msgstr "Skirt/Brim 加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_skirt_brim description" +msgid "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration." +msgstr "打印 skirt 和 brim 的加速度。 一般情况是以起始层加速度打印这些部分,但有时候您可能想要以不同加速度来打印 skirt 或 brim。" + +#: fdmprinter.def.json +msgctxt "jerk_enabled label" +msgid "Enable Jerk Control" +msgstr "启用抖动速度控制" + +#: fdmprinter.def.json +msgctxt "jerk_enabled description" +msgid "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality." +msgstr "启用当 X 或 Y 轴的速度变化时调整打印头的抖动速度。 提高抖动速度可以通过以打印质量为代价来缩短打印时间。" + +#: fdmprinter.def.json +msgctxt "jerk_print label" +msgid "Print Jerk" +msgstr "打印抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_print description" +msgid "The maximum instantaneous velocity change of the print head." +msgstr "打印头的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_infill label" +msgid "Infill Jerk" +msgstr "填充抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_infill description" +msgid "The maximum instantaneous velocity change with which infill is printed." +msgstr "打印填充物时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_wall label" +msgid "Wall Jerk" +msgstr "壁抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_wall description" +msgid "The maximum instantaneous velocity change with which the walls are printed." +msgstr "打印壁时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_wall_0 label" +msgid "Outer Wall Jerk" +msgstr "外壁抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_wall_0 description" +msgid "The maximum instantaneous velocity change with which the outermost walls are printed." +msgstr "打印最外壁时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_wall_x label" +msgid "Inner Wall Jerk" +msgstr "内壁抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_wall_x description" +msgid "The maximum instantaneous velocity change with which all inner walls are printed." +msgstr "打印所有内壁时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_roofing label" +msgid "Top Surface Skin Jerk" +msgstr "顶部表面皮肤抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_roofing description" +msgid "The maximum instantaneous velocity change with which top surface skin layers are printed." +msgstr "打印顶部表面皮肤层时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_topbottom label" +msgid "Top/Bottom Jerk" +msgstr "顶部/底部抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_topbottom description" +msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." +msgstr "打印顶部/底部层时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_support label" +msgid "Support Jerk" +msgstr "支撑抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_support description" +msgid "The maximum instantaneous velocity change with which the support structure is printed." +msgstr "打印支撑结构时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_support_infill label" +msgid "Support Infill Jerk" +msgstr "支撑填充抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_support_infill description" +msgid "The maximum instantaneous velocity change with which the infill of support is printed." +msgstr "打印支撑填充物时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_support_interface label" +msgid "Support Interface Jerk" +msgstr "支撑接触面抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_support_interface description" +msgid "The maximum instantaneous velocity change with which the roofs and floors of support are printed." +msgstr "打印支撑顶板和底板的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_support_roof label" +msgid "Support Roof Jerk" +msgstr "支撑顶板抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_support_roof description" +msgid "The maximum instantaneous velocity change with which the roofs of support are printed." +msgstr "打印支撑顶板的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_support_bottom label" +msgid "Support Floor Jerk" +msgstr "支撑底板抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_support_bottom description" +msgid "The maximum instantaneous velocity change with which the floors of support are printed." +msgstr "打印支撑底板时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_prime_tower label" +msgid "Prime Tower Jerk" +msgstr "装填塔抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_prime_tower description" +msgid "The maximum instantaneous velocity change with which the prime tower is printed." +msgstr "打印装填塔时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_travel label" +msgid "Travel Jerk" +msgstr "空驶抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_travel description" +msgid "The maximum instantaneous velocity change with which travel moves are made." +msgstr "进行空驶时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_layer_0 label" +msgid "Initial Layer Jerk" +msgstr "起始层抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_layer_0 description" +msgid "The print maximum instantaneous velocity change for the initial layer." +msgstr "起始层的打印最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_print_layer_0 label" +msgid "Initial Layer Print Jerk" +msgstr "起始层打印抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_print_layer_0 description" +msgid "The maximum instantaneous velocity change during the printing of the initial layer." +msgstr "打印起始层时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "jerk_travel_layer_0 label" +msgid "Initial Layer Travel Jerk" +msgstr "起始层空驶抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_travel_layer_0 description" +msgid "The acceleration for travel moves in the initial layer." +msgstr "起始层中的空驶加速度。" + +#: fdmprinter.def.json +msgctxt "jerk_skirt_brim label" +msgid "Skirt/Brim Jerk" +msgstr "Skirt/Brim 抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_skirt_brim description" +msgid "The maximum instantaneous velocity change with which the skirt and brim are printed." +msgstr "打印 skirt 和 brim 时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "travel label" +msgid "Travel" +msgstr "移动" + +#: fdmprinter.def.json +msgctxt "travel description" +msgid "travel" +msgstr "空驶" + +#: fdmprinter.def.json +msgctxt "retraction_combing label" +msgid "Combing Mode" +msgstr "梳理模式" + +#: fdmprinter.def.json +msgctxt "retraction_combing description" +msgid "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas by combing within the infill only." +msgstr "梳理可在空驶时让喷嘴保持在已打印区域内。 这会使空驶距离稍微延长,但可减少回抽需求。 如果关闭梳理,则材料将回抽,且喷嘴沿着直线移动到下一个点。 也可以通过仅在填充物内进行梳理避免梳理顶部/底部皮肤区域。" + +#: fdmprinter.def.json +msgctxt "retraction_combing option off" +msgid "Off" +msgstr "关" + +#: fdmprinter.def.json +msgctxt "retraction_combing option all" +msgid "All" +msgstr "所有" + +#: fdmprinter.def.json +msgctxt "retraction_combing option noskin" +msgid "No Skin" +msgstr "无皮肤" + +#: fdmprinter.def.json +msgctxt "travel_retract_before_outer_wall label" +msgid "Retract Before Outer Wall" +msgstr "在外壁前回抽" + +#: fdmprinter.def.json +msgctxt "travel_retract_before_outer_wall description" +msgid "Always retract when moving to start an outer wall." +msgstr "在移动开始打印外壁时始终回抽。" + +#: fdmprinter.def.json +msgctxt "travel_avoid_other_parts label" +msgid "Avoid Printed Parts When Traveling" +msgstr "空驶时避开已打印部分" + +#: fdmprinter.def.json +msgctxt "travel_avoid_other_parts description" +msgid "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled." +msgstr "喷嘴会在空驶时避开已打印的部分。 此选项仅在启用梳理功能时可用。" + +#: fdmprinter.def.json +msgctxt "travel_avoid_distance label" +msgid "Travel Avoid Distance" +msgstr "空驶避让距离" + +#: fdmprinter.def.json +msgctxt "travel_avoid_distance description" +msgid "The distance between the nozzle and already printed parts when avoiding during travel moves." +msgstr "喷嘴和已打印部分之间在空驶时避让的距离。" + +#: fdmprinter.def.json +msgctxt "start_layers_at_same_position label" +msgid "Start Layers with the Same Part" +msgstr "开始具有相同部分的层" + +#: fdmprinter.def.json +msgctxt "start_layers_at_same_position description" +msgid "In each layer start with printing the object near the same point, so that we don't start a new layer with printing the piece which the previous layer ended with. This makes for better overhangs and small parts, but increases printing time." +msgstr "每一层都在相同点附近开始打印模型,这样我们就不用在开始新层时打印上一层结束的部分。 这会打印出更好的悬垂和较小的部分,但会增加打印时间。" + +#: fdmprinter.def.json +msgctxt "layer_start_x label" +msgid "Layer Start X" +msgstr "层开始 X" + +#: fdmprinter.def.json +msgctxt "layer_start_x description" +msgid "The X coordinate of the position near where to find the part to start printing each layer." +msgstr "位置的 X 轴坐标,在该位置附近找到开始打印每层的部分。" + +#: fdmprinter.def.json +msgctxt "layer_start_y label" +msgid "Layer Start Y" +msgstr "层开始 Y" + +#: fdmprinter.def.json +msgctxt "layer_start_y description" +msgid "The Y coordinate of the position near where to find the part to start printing each layer." +msgstr "位置的 Y 轴坐标,在该位置附近找到开始打印每层的部分。" + +#: fdmprinter.def.json +msgctxt "retraction_hop_enabled label" +msgid "Z Hop When Retracted" +msgstr "回抽时 Z 抬升" + +#: fdmprinter.def.json +msgctxt "retraction_hop_enabled description" +msgid "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate." +msgstr "每当回抽完成时,打印平台会降低以便在喷嘴和打印品之间形成空隙。 它可以防止喷嘴在空驶过程中撞到打印品,降低将打印品从打印平台撞掉的几率。" + +#: fdmprinter.def.json +msgctxt "retraction_hop_only_when_collides label" +msgid "Z Hop Only Over Printed Parts" +msgstr "仅在已打印部分上 Z 抬升" + +#: fdmprinter.def.json +msgctxt "retraction_hop_only_when_collides description" +msgid "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling." +msgstr "仅在移动到无法通过“空驶时避开已打印部分”选项的水平操作避开的已打印部分上方时执行 Z 抬升。" + +#: fdmprinter.def.json +msgctxt "retraction_hop label" +msgid "Z Hop Height" +msgstr "Z 抬升高度" + +#: fdmprinter.def.json +msgctxt "retraction_hop description" +msgid "The height difference when performing a Z Hop." +msgstr "执行 Z 抬升的高度差。" + +#: fdmprinter.def.json +msgctxt "retraction_hop_after_extruder_switch label" +msgid "Z Hop After Extruder Switch" +msgstr "挤出机切换后的 Z 抬升" + +#: fdmprinter.def.json +msgctxt "retraction_hop_after_extruder_switch description" +msgid "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print." +msgstr "当机器从一个挤出机切换到另一个时,打印平台会降低以便在喷嘴和打印品之间形成空隙。 这将防止喷嘴在打印品外部留下渗出物。" + +#: fdmprinter.def.json +msgctxt "cooling label" +msgid "Cooling" +msgstr "冷却" + +#: fdmprinter.def.json +msgctxt "cooling description" +msgid "Cooling" +msgstr "冷却" + +#: fdmprinter.def.json +msgctxt "cool_fan_enabled label" +msgid "Enable Print Cooling" +msgstr "开启打印冷却" + +#: fdmprinter.def.json +msgctxt "cool_fan_enabled description" +msgid "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs." +msgstr "打印时启用打印冷却风扇。 风扇可以在层时间较短和有桥接/悬垂的层上提高打印质量。" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed label" +msgid "Fan Speed" +msgstr "风扇速度" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed description" +msgid "The speed at which the print cooling fans spin." +msgstr "打印冷却风扇旋转的速度。" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_min label" +msgid "Regular Fan Speed" +msgstr "正常风扇速度" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_min description" +msgid "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed." +msgstr "风扇旋转达到阈值前的速度。 当一层的打印速度超过阈值时,风扇速度逐渐朝最大风扇速度增加。" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_max label" +msgid "Maximum Fan Speed" +msgstr "最大风扇速度" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_max description" +msgid "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit." +msgstr "风扇在最小层时间上旋转的速度。 当达到阈值时,风扇速度在正常风扇速度和最大风扇速度之间逐渐增加。" + +#: fdmprinter.def.json +msgctxt "cool_min_layer_time_fan_speed_max label" +msgid "Regular/Maximum Fan Speed Threshold" +msgstr "正常/最大风扇速度阈值" + +#: fdmprinter.def.json +msgctxt "cool_min_layer_time_fan_speed_max description" +msgid "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed." +msgstr "设定正常风扇速度和最大风扇速度之间阈值的层时间。 打印速度低于此时间的层使用正常风扇速度。 对于更快的层,风扇速度逐渐增加到最大风扇速度。" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_0 label" +msgid "Initial Fan Speed" +msgstr "起始风扇速度" + +#: fdmprinter.def.json +msgctxt "cool_fan_speed_0 description" +msgid "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height." +msgstr "风扇在打印开始时旋转的速度。 在随后的层中,风扇速度逐渐增加到对应“正常风扇速度(高度)”的水平。" + +#: fdmprinter.def.json +msgctxt "cool_fan_full_at_height label" +msgid "Regular Fan Speed at Height" +msgstr "正常风扇速度(高度)" + +#: fdmprinter.def.json +msgctxt "cool_fan_full_at_height description" +msgid "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed." +msgstr "风扇以正常速度旋转的高度。 在下方的层中,风扇速度逐渐从起始风扇速度增加到正常风扇速度。" + +#: fdmprinter.def.json +msgctxt "cool_fan_full_layer label" +msgid "Regular Fan Speed at Layer" +msgstr "正常风扇速度(层)" + +#: fdmprinter.def.json +msgctxt "cool_fan_full_layer description" +msgid "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number." +msgstr "风扇以正常风扇速度旋转的层。 如果设置了正常风扇速度(高度),则该值将被计算并舍入为整数。" + +#: fdmprinter.def.json +msgctxt "cool_min_layer_time label" +msgid "Minimum Layer Time" +msgstr "最短单层冷却时间" + +#: fdmprinter.def.json +msgctxt "cool_min_layer_time description" +msgid "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated." +msgstr "在层中花费的最少时间。 这会迫使打印机减速,以便至少在一层中消耗此处所规定的时间。 这会让已打印材料充分冷却后再打印下一层。 如果提升头被禁用,且如果不这么做会违反“最小速度“,则层所花时间可能仍会少于最小层时间。" + +#: fdmprinter.def.json +msgctxt "cool_min_speed label" +msgid "Minimum Speed" +msgstr "最小风扇速度" + +#: fdmprinter.def.json +msgctxt "cool_min_speed description" +msgid "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality." +msgstr "最低打印速度,排除因最短层时间而减速。 当打印机减速过多时,喷嘴中的压力将过低并导致较差的打印质量。" + +#: fdmprinter.def.json +msgctxt "cool_lift_head label" +msgid "Lift Head" +msgstr "打印头提升" + +#: fdmprinter.def.json +msgctxt "cool_lift_head description" +msgid "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached." +msgstr "当因最低层时间达到最低速度时,将打印头从打印品上提升,并等候达到最低层时间。" + +#: fdmprinter.def.json +msgctxt "support label" +msgid "Support" +msgstr "支撑" + +#: fdmprinter.def.json +msgctxt "support description" +msgid "Support" +msgstr "支撑" + +#: fdmprinter.def.json +msgctxt "support_enable label" +msgid "Generate Support" +msgstr "生成支撑" + +#: fdmprinter.def.json +msgctxt "support_enable description" +msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." +msgstr "在模型的悬垂(Overhangs)部分生成支撑结构。若不这样做,这些部分在打印时将倒塌。" + +#: fdmprinter.def.json +msgctxt "support_extruder_nr label" +msgid "Support Extruder" +msgstr "支撑用挤出机" + +#: fdmprinter.def.json +msgctxt "support_extruder_nr description" +msgid "The extruder train to use for printing the support. This is used in multi-extrusion." +msgstr "用于打印支撑的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_infill_extruder_nr label" +msgid "Support Infill Extruder" +msgstr "支撑填充挤出机" + +#: fdmprinter.def.json +msgctxt "support_infill_extruder_nr description" +msgid "The extruder train to use for printing the infill of the support. This is used in multi-extrusion." +msgstr "用于打印支撑填充物的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_extruder_nr_layer_0 label" +msgid "First Layer Support Extruder" +msgstr "第一层支撑挤出机" + +#: fdmprinter.def.json +msgctxt "support_extruder_nr_layer_0 description" +msgid "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion." +msgstr "用于打印支撑填充物第一层的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_interface_extruder_nr label" +msgid "Support Interface Extruder" +msgstr "支撑接触面挤出机" + +#: fdmprinter.def.json +msgctxt "support_interface_extruder_nr description" +msgid "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion." +msgstr "用于打印支撑顶板和底板的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_roof_extruder_nr label" +msgid "Support Roof Extruder" +msgstr "支撑顶板挤出机" + +#: fdmprinter.def.json +msgctxt "support_roof_extruder_nr description" +msgid "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion." +msgstr "用于打印支撑顶板的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_bottom_extruder_nr label" +msgid "Support Floor Extruder" +msgstr "支撑底板挤出机" + +#: fdmprinter.def.json +msgctxt "support_bottom_extruder_nr description" +msgid "The extruder train to use for printing the floors of the support. This is used in multi-extrusion." +msgstr "用于打印支撑底板的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "support_type label" +msgid "Support Placement" +msgstr "支撑放置" + +#: fdmprinter.def.json +msgctxt "support_type description" +msgid "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model." +msgstr "调整支撑结构的放置。 放置可以设置为支撑打印平台或全部支撑。 当设置为全部支撑时,支撑结构也将在模型上打印。" + +#: fdmprinter.def.json +msgctxt "support_type option buildplate" +msgid "Touching Buildplate" +msgstr "支撑打印平台" + +#: fdmprinter.def.json +msgctxt "support_type option everywhere" +msgid "Everywhere" +msgstr "全部支撑" + +#: fdmprinter.def.json +msgctxt "support_angle label" +msgid "Support Overhang Angle" +msgstr "支撑悬垂角度" + +#: fdmprinter.def.json +msgctxt "support_angle description" +msgid "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support." +msgstr "添加支撑的最小悬垂角度。 当角度为 0° 时,将支撑所有悬垂,当角度为 90° 时,不提供任何支撑。" + +#: fdmprinter.def.json +msgctxt "support_pattern label" +msgid "Support Pattern" +msgstr "支撑图案" + +#: fdmprinter.def.json +msgctxt "support_pattern description" +msgid "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support." +msgstr "打印品支撑结构的图案。 提供的不同选项可实现或牢固或易于拆除的支撑。" + +#: fdmprinter.def.json +msgctxt "support_pattern option lines" +msgid "Lines" +msgstr "走线" + +#: fdmprinter.def.json +msgctxt "support_pattern option grid" +msgid "Grid" +msgstr "网格" + +#: fdmprinter.def.json +msgctxt "support_pattern option triangles" +msgid "Triangles" +msgstr "三角形" + +#: fdmprinter.def.json +msgctxt "support_pattern option concentric" +msgid "Concentric" +msgstr "同心" + +#: fdmprinter.def.json +msgctxt "support_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "同心 3D" + +#: fdmprinter.def.json +msgctxt "support_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿形" + +#: fdmprinter.def.json +msgctxt "support_pattern option cross" +msgid "Cross" +msgstr "交叉" + +#: fdmprinter.def.json +msgctxt "support_connect_zigzags label" +msgid "Connect Support ZigZags" +msgstr "连接支撑锯齿形" + +#: fdmprinter.def.json +msgctxt "support_connect_zigzags description" +msgid "Connect the ZigZags. This will increase the strength of the zig zag support structure." +msgstr "连接锯齿形。 这将增加锯齿形支撑结构的强度。" + +#: fdmprinter.def.json +msgctxt "support_skip_some_zags label" +msgid "Break Up Support In Chunks" +msgstr "将支撑结构分拆成块状" + +#: fdmprinter.def.json +msgctxt "support_skip_some_zags description" +msgid "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern." +msgstr "跳过部分支撑线连接,让支撑结构更容易脱离。 此设置适用于锯齿形支撑结构填充图案。" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm label" +msgid "Support Chunk Size" +msgstr "支撑块大小" + +#: fdmprinter.def.json +msgctxt "support_skip_zag_per_mm description" +msgid "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away." +msgstr "每隔 N 毫米在支撑线之间略去一个连接,让支撑结构更容易脱离。" + +#: fdmprinter.def.json +msgctxt "support_zag_skip_count label" +msgid "Support Chunk Line Count" +msgstr "支撑块走线数" + +#: fdmprinter.def.json +msgctxt "support_zag_skip_count description" +msgid "Skip one in every N connection lines to make the support structure easier to break away." +msgstr "每隔 N 个连接线跳过一个连接,让支撑结构更容易脱离。" + +#: fdmprinter.def.json +msgctxt "support_infill_rate label" +msgid "Support Density" +msgstr "支撑密度" + +#: fdmprinter.def.json +msgctxt "support_infill_rate description" +msgid "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove." +msgstr "调整支撑结构的密度。 较高的值会实现更好的悬垂,但支撑将更加难以移除。" + +#: fdmprinter.def.json +msgctxt "support_line_distance label" +msgid "Support Line Distance" +msgstr "支撑走线距离" + +#: fdmprinter.def.json +msgctxt "support_line_distance description" +msgid "Distance between the printed support structure lines. This setting is calculated by the support density." +msgstr "已打印支撑结构走线之间的距离。 该设置通过支撑密度计算。" + +#: fdmprinter.def.json +msgctxt "support_z_distance label" +msgid "Support Z Distance" +msgstr "支撑 Z 距离" + +#: fdmprinter.def.json +msgctxt "support_z_distance description" +msgid "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height." +msgstr "支撑结构顶部/底部到打印品之间的距离。 该间隙提供了在模型打印完成后移除支撑的空隙。 该值舍入为层高的倍数。" + +#: fdmprinter.def.json +msgctxt "support_top_distance label" +msgid "Support Top Distance" +msgstr "支撑顶部距离" + +#: fdmprinter.def.json +msgctxt "support_top_distance description" +msgid "Distance from the top of the support to the print." +msgstr "从支撑顶部到打印品的距离。" + +#: fdmprinter.def.json +msgctxt "support_bottom_distance label" +msgid "Support Bottom Distance" +msgstr "支撑底部距离" + +#: fdmprinter.def.json +msgctxt "support_bottom_distance description" +msgid "Distance from the print to the bottom of the support." +msgstr "从打印品到支撑底部的距离。" + +#: fdmprinter.def.json +msgctxt "support_xy_distance label" +msgid "Support X/Y Distance" +msgstr "支撑 X/Y 距离" + +#: fdmprinter.def.json +msgctxt "support_xy_distance description" +msgid "Distance of the support structure from the print in the X/Y directions." +msgstr "支撑结构在 X/Y 方向距打印品的距离。" + +#: fdmprinter.def.json +msgctxt "support_xy_overrides_z label" +msgid "Support Distance Priority" +msgstr "支撑距离优先级" + +#: fdmprinter.def.json +msgctxt "support_xy_overrides_z description" +msgid "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs." +msgstr "支撑 X/Y 距离是否覆盖支撑 Z 距离或反之。 当 X/Y 覆盖 Z 时,X/Y 距离可将支撑从模型上推离,影响与悬垂之间的实际 Z 距离。 我们可以通过不在悬垂周围应用 X/Y 距离来禁用此选项。" + +#: fdmprinter.def.json +msgctxt "support_xy_overrides_z option xy_overrides_z" +msgid "X/Y overrides Z" +msgstr "X/Y 覆盖 Z" + +#: fdmprinter.def.json +msgctxt "support_xy_overrides_z option z_overrides_xy" +msgid "Z overrides X/Y" +msgstr "Z 覆盖 X/Y" + +#: fdmprinter.def.json +msgctxt "support_xy_distance_overhang label" +msgid "Minimum Support X/Y Distance" +msgstr "最小支撑 X/Y 距离" + +#: fdmprinter.def.json +msgctxt "support_xy_distance_overhang description" +msgid "Distance of the support structure from the overhang in the X/Y directions. " +msgstr "支撑结构在 X/Y 方向距悬垂的距离。 " + +#: fdmprinter.def.json +msgctxt "support_bottom_stair_step_height label" +msgid "Support Stair Step Height" +msgstr "支撑梯步阶高度" + +#: fdmprinter.def.json +msgctxt "support_bottom_stair_step_height description" +msgid "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour." +msgstr "停留在模型上的支撑阶梯状底部的步阶高度。 较低的值会使支撑更难于移除,但过高的值可能导致不稳定的支撑结构。 设为零可以关闭阶梯状行为。" + +#: fdmprinter.def.json +msgctxt "support_bottom_stair_step_width label" +msgid "Support Stair Step Maximum Width" +msgstr "支撑梯步阶最大宽度" + +#: fdmprinter.def.json +msgctxt "support_bottom_stair_step_width description" +msgid "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures." +msgstr "停留在模型上的支撑阶梯状底部的最大步阶宽度。 较低的值会使支撑更难于移除,但过高的值可能导致不稳定的支撑结构。" + +#: fdmprinter.def.json +msgctxt "support_join_distance label" +msgid "Support Join Distance" +msgstr "支撑结合部距离" + +#: fdmprinter.def.json +msgctxt "support_join_distance description" +msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one." +msgstr "支撑结构间在 X/Y 方向的最大距离。 当分离结构之间的距离小于此值时,这些结构将合并为一个。" + +#: fdmprinter.def.json +msgctxt "support_offset label" +msgid "Support Horizontal Expansion" +msgstr "支撑水平扩展" + +#: fdmprinter.def.json +msgctxt "support_offset description" +msgid "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support." +msgstr "应用到每一层所有支撑多边形的偏移量。 正值可以让支撑区域更平滑,并产生更为牢固的支撑。" + +#: fdmprinter.def.json +msgctxt "support_infill_sparse_thickness label" +msgid "Support Infill Layer Thickness" +msgstr "支撑填充层厚度" + +#: fdmprinter.def.json +msgctxt "support_infill_sparse_thickness description" +msgid "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded." +msgstr "支撑填充材料每层的厚度。 该值应始终为层高的乘数,否则应进行舍入。" + +#: fdmprinter.def.json +msgctxt "gradual_support_infill_steps label" +msgid "Gradual Support Infill Steps" +msgstr "渐进支撑填充步阶" + +#: fdmprinter.def.json +msgctxt "gradual_support_infill_steps description" +msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." +msgstr "在进入顶层以下时,将支撑填充密度减少一半的次数。 越靠近顶面的区域密度越高,最高达到支撑填充密度。" + +#: fdmprinter.def.json +msgctxt "gradual_support_infill_step_height label" +msgid "Gradual Support Infill Step Height" +msgstr "渐进支撑填充步阶高度" + +#: fdmprinter.def.json +msgctxt "gradual_support_infill_step_height description" +msgid "The height of support infill of a given density before switching to half the density." +msgstr "在切换至密度的一半前指定密度的支撑填充高度。" + +#: fdmprinter.def.json +msgctxt "support_interface_enable label" +msgid "Enable Support Interface" +msgstr "启用支撑接触面" + +#: fdmprinter.def.json +msgctxt "support_interface_enable description" +msgid "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model." +msgstr "在模型和支撑之间生成一个密集的接触面。 这会在打印模型所在的支撑顶部和模型停放的支撑底部创建一个皮肤。" + +#: fdmprinter.def.json +msgctxt "support_roof_enable label" +msgid "Enable Support Roof" +msgstr "启用支撑顶板" + +#: fdmprinter.def.json +msgctxt "support_roof_enable description" +msgid "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support." +msgstr "在支撑顶部和模型之间生成一个密集的材料板。 这会在模型和支撑之间形成一个皮肤。" + +#: fdmprinter.def.json +msgctxt "support_bottom_enable label" +msgid "Enable Support Floor" +msgstr "启用支撑底板" + +#: fdmprinter.def.json +msgctxt "support_bottom_enable description" +msgid "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support." +msgstr "在支撑底部和模型之间生成一个密集的材料板。 这会在模型和支撑之间形成一个皮肤。" + +#: fdmprinter.def.json +msgctxt "support_interface_height label" +msgid "Support Interface Thickness" +msgstr "支撑接触面厚度" + +#: fdmprinter.def.json +msgctxt "support_interface_height description" +msgid "The thickness of the interface of the support where it touches with the model on the bottom or the top." +msgstr "支撑与模型在底部或顶部接触的接触面厚度。" + +#: fdmprinter.def.json +msgctxt "support_roof_height label" +msgid "Support Roof Thickness" +msgstr "支撑顶板厚度" + +#: fdmprinter.def.json +msgctxt "support_roof_height description" +msgid "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests." +msgstr "支撑顶板的厚度。 这会控制模型所停放的支撑顶部密集层的数量。" + +#: fdmprinter.def.json +msgctxt "support_bottom_height label" +msgid "Support Floor Thickness" +msgstr "支撑底板厚度" + +#: fdmprinter.def.json +msgctxt "support_bottom_height description" +msgid "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests." +msgstr "支撑底板的厚度。 这会控制支撑所停放的模型顶部区域所打印的密集层数量。" + +#: fdmprinter.def.json +msgctxt "support_interface_skip_height label" +msgid "Support Interface Resolution" +msgstr "支撑接触面分辨率" + +#: fdmprinter.def.json +msgctxt "support_interface_skip_height description" +msgid "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface." +msgstr "在检查支撑上方或下方是否有模型时,采用指定高度的步阶。 值越低切片速度越慢,而较高的值会导致在部分应有支撑接触面的位置打印一般的支撑。" + +#: fdmprinter.def.json +msgctxt "support_interface_density label" +msgid "Support Interface Density" +msgstr "支撑接触面密度" + +#: fdmprinter.def.json +msgctxt "support_interface_density description" +msgid "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove." +msgstr "调整支撑结构顶板和底板的密度。 较高的值会实现更好的悬垂,但支撑将更加难以移除。" + +#: fdmprinter.def.json +msgctxt "support_roof_density label" +msgid "Support Roof Density" +msgstr "支撑顶板密度" + +#: fdmprinter.def.json +msgctxt "support_roof_density description" +msgid "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove." +msgstr "支撑结构顶板的密度。 较高的值会实现更好的悬垂,但支撑将更加难以移除。" + +#: fdmprinter.def.json +msgctxt "support_roof_line_distance label" +msgid "Support Roof Line Distance" +msgstr "支撑顶板走线距离" + +#: fdmprinter.def.json +msgctxt "support_roof_line_distance description" +msgid "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately." +msgstr "已打印支撑顶板走线之间的距离。 该设置是通过支撑顶板密度计算,但可以单独调整。" + +#: fdmprinter.def.json +msgctxt "support_bottom_density label" +msgid "Support Floor Density" +msgstr "支撑底板密度" + +#: fdmprinter.def.json +msgctxt "support_bottom_density description" +msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model." +msgstr "支撑结构底板的密度。 较高的值会在模型顶部产生更好的支撑粘着。" + +#: fdmprinter.def.json +msgctxt "support_bottom_line_distance label" +msgid "Support Floor Line Distance" +msgstr "支撑底板走线距离" + +#: fdmprinter.def.json +msgctxt "support_bottom_line_distance description" +msgid "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately." +msgstr "已打印支撑底板走线之间的距离。 该设置是通过支撑底板密度计算,但可以单独调整。" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern label" +msgid "Support Interface Pattern" +msgstr "支撑接触面图案" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern description" +msgid "The pattern with which the interface of the support with the model is printed." +msgstr "支撑与模型之间接触面的打印图案。" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option lines" +msgid "Lines" +msgstr "走线" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option grid" +msgid "Grid" +msgstr "网格" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option triangles" +msgid "Triangles" +msgstr "三角形" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option concentric" +msgid "Concentric" +msgstr "同心" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "同心 3D" + +#: fdmprinter.def.json +msgctxt "support_interface_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿形" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern label" +msgid "Support Roof Pattern" +msgstr "支撑顶板图案" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern description" +msgid "The pattern with which the roofs of the support are printed." +msgstr "打印支撑顶板的图案。" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option lines" +msgid "Lines" +msgstr "直线" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option grid" +msgid "Grid" +msgstr "网格" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option triangles" +msgid "Triangles" +msgstr "三角形" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option concentric" +msgid "Concentric" +msgstr "同心圆" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "立体同心圆" + +#: fdmprinter.def.json +msgctxt "support_roof_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿状" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern label" +msgid "Support Floor Pattern" +msgstr "支撑底板图案" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern description" +msgid "The pattern with which the floors of the support are printed." +msgstr "打印支撑底板的图案。" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option lines" +msgid "Lines" +msgstr "走线" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option grid" +msgid "Grid" +msgstr "网格" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option triangles" +msgid "Triangles" +msgstr "三角形" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option concentric" +msgid "Concentric" +msgstr "同心" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "同心 3D" + +#: fdmprinter.def.json +msgctxt "support_bottom_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿形" + +#: fdmprinter.def.json +msgctxt "support_use_towers label" +msgid "Use Towers" +msgstr "使用塔" + +#: fdmprinter.def.json +msgctxt "support_use_towers description" +msgid "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof." +msgstr "使用专门的塔来支撑较小的悬垂区域。 这些塔的直径比它们所支撑的区域要大。 在靠近悬垂物时,塔的直径减小,形成顶板。" + +#: fdmprinter.def.json +msgctxt "support_tower_diameter label" +msgid "Tower Diameter" +msgstr "塔直径" + +#: fdmprinter.def.json +msgctxt "support_tower_diameter description" +msgid "The diameter of a special tower." +msgstr "特殊塔的直径。" + +#: fdmprinter.def.json +msgctxt "support_minimal_diameter label" +msgid "Minimum Diameter" +msgstr "最小直径" + +#: fdmprinter.def.json +msgctxt "support_minimal_diameter description" +msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower." +msgstr "将由专门的支撑塔支撑的小区域 X/Y 轴方向的最小直径。" + +#: fdmprinter.def.json +msgctxt "support_tower_roof_angle label" +msgid "Tower Roof Angle" +msgstr "塔顶板角度" + +#: fdmprinter.def.json +msgctxt "support_tower_roof_angle description" +msgid "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs." +msgstr "塔顶角度。 该值越高,塔顶越尖,值越低,塔顶越平。" + +#: fdmprinter.def.json +msgctxt "platform_adhesion label" +msgid "Build Plate Adhesion" +msgstr "打印平台附着" + +#: fdmprinter.def.json +msgctxt "platform_adhesion description" +msgid "Adhesion" +msgstr "附着" + +#: fdmprinter.def.json +msgctxt "prime_blob_enable label" +msgid "Enable Prime Blob" +msgstr "启用装填光点" + +#: fdmprinter.def.json +msgctxt "prime_blob_enable description" +msgid "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time." +msgstr "打印前是否装填有光点的耗材。 开启此设置将确保打印前挤出机的喷嘴处已准备好材料。 打印 Brim 或 Skirt 也可作为装填用途,这种情况下关闭此设置可以节省时间。" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_x label" +msgid "Extruder Prime X Position" +msgstr "挤出机 X 轴坐标" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_x description" +msgid "The X coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 X 轴上初始位置。" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_y label" +msgid "Extruder Prime Y Position" +msgstr "挤出机 Y 轴起始位置" + +#: fdmprinter.def.json +msgctxt "extruder_prime_pos_y description" +msgid "The Y coordinate of the position where the nozzle primes at the start of printing." +msgstr "打印开始时,喷头在 Y 轴坐标上初始位置。" + +#: fdmprinter.def.json +msgctxt "adhesion_type label" +msgid "Build Plate Adhesion Type" +msgstr "打印平台附着类型" + +#: fdmprinter.def.json +msgctxt "adhesion_type description" +msgid "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model." +msgstr "帮助改善挤出装填以及与打印平台附着的不同选项。 Brim 会在模型基座周围添加单层平面区域,以防止卷翘。 Raft 会在模型下添加一个有顶板的厚网格。 Skirt 是在模型四周打印的一条线,但并不与模型连接。" + +#: fdmprinter.def.json +msgctxt "adhesion_type option skirt" +msgid "Skirt" +msgstr "Skirt" + +#: fdmprinter.def.json +msgctxt "adhesion_type option brim" +msgid "Brim" +msgstr "Brim" + +#: fdmprinter.def.json +msgctxt "adhesion_type option raft" +msgid "Raft" +msgstr "Raft" + +#: fdmprinter.def.json +msgctxt "adhesion_type option none" +msgid "None" +msgstr "无" + +#: fdmprinter.def.json +msgctxt "adhesion_extruder_nr label" +msgid "Build Plate Adhesion Extruder" +msgstr "打印平台附着挤出机" + +#: fdmprinter.def.json +msgctxt "adhesion_extruder_nr description" +msgid "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion." +msgstr "用于打印 skirt/brim/raft 的挤出机组。 用于多重挤出。" + +#: fdmprinter.def.json +msgctxt "skirt_line_count label" +msgid "Skirt Line Count" +msgstr "Skirt 走线计数" + +#: fdmprinter.def.json +msgctxt "skirt_line_count description" +msgid "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt." +msgstr "多个 Skirt 走线帮助为小型模型更好地装填您的挤出部分。 将其设为 0 将禁用 skirt。" + +#: fdmprinter.def.json +msgctxt "skirt_gap label" +msgid "Skirt Distance" +msgstr "Skirt 距离" + +#: fdmprinter.def.json +msgctxt "skirt_gap description" +msgid "" +"The horizontal distance between the skirt and the first layer of the print.\n" +"This is the minimum distance, multiple skirt lines will extend outwards from this distance." +msgstr "skirt 和打印第一层之间的水平距离。\n这是最小距离,多个 skirt 走线将从此距离向外延伸。" + +#: fdmprinter.def.json +msgctxt "skirt_brim_minimal_length label" +msgid "Skirt/Brim Minimum Length" +msgstr "Skirt/Brim 最小长度" + +#: fdmprinter.def.json +msgctxt "skirt_brim_minimal_length description" +msgid "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored." +msgstr "skirt 或 brim 的最小长度。 如果所有 skirt 或 brim 走线之和都没有达到此长度,则将添加更多 skirt 或 brim 走线直至达到最小长度。 注意: 如果走线计数设为 0,则将忽略此选项。" + +#: fdmprinter.def.json +msgctxt "brim_width label" +msgid "Brim Width" +msgstr "Brim 宽度" + +#: fdmprinter.def.json +msgctxt "brim_width description" +msgid "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area." +msgstr "模型到最外侧 brim 线的距离。 较大的 brim 可增强与打印平台的附着,但也会减少有效打印区域。" + +#: fdmprinter.def.json +msgctxt "brim_line_count label" +msgid "Brim Line Count" +msgstr "Brim 走线计数" + +#: fdmprinter.def.json +msgctxt "brim_line_count description" +msgid "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area." +msgstr "brim 所用走线数量。 更多 brim 走线可增强与打印平台的附着,但也会减少有效打印区域。" + +#: fdmprinter.def.json +msgctxt "brim_outside_only label" +msgid "Brim Only on Outside" +msgstr "仅在外部打印 Brim" + +#: fdmprinter.def.json +msgctxt "brim_outside_only description" +msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." +msgstr "仅在模型外部打印 brim。 这会减少您之后需要移除的 brim 量,而不会过度影响热床附着。" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 label" +msgid "Initial Layer Z Offset" +msgstr "起始层 Z 偏移量" + +#: fdmprinter.def.json +msgctxt "z_offset_layer_0 description" +msgid "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly." +msgstr "此值为挤出机与第一层正常高度之间的偏移量。 该值可以为正(升起),也可以为负(降下)。 如果挤出机略微升起,部分耗材类型会与打印平台实现更好的粘着。" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers label" +msgid "Z Offset Taper Layers" +msgstr "Z 偏移锥形层" + +#: fdmprinter.def.json +msgctxt "z_offset_taper_layers description" +msgid "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print." +msgstr "当非零时,Z 偏移在多个层中逐步降至零。 值为 0 则表示,在打印品的各个层中 Z 偏移量保持不变。" + +#: fdmprinter.def.json +msgctxt "raft_margin label" +msgid "Raft Extra Margin" +msgstr "Raft 留白" + +#: fdmprinter.def.json +msgctxt "raft_margin description" +msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." +msgstr "如果启用了 raft,则这是指也被提供了 raft 的模型周围的额外 raft 区域。 增加此留白将创建强度更大的 raft,但会使用更多材料,为打印品留下的空间更少。" + +#: fdmprinter.def.json +msgctxt "raft_smoothing label" +msgid "Raft Smoothing" +msgstr "Raft 平滑度" + +#: fdmprinter.def.json +msgctxt "raft_smoothing description" +msgid "This setting control how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle." +msgstr "该设置控制 Raft 轮廓中的内角呈圆形的程度。 内向角被设置为半圆形,半径等于此处的值。 此设置还会移除 raft 轮廓中小于此半圆形的孔。" + +#: fdmprinter.def.json +msgctxt "raft_airgap label" +msgid "Raft Air Gap" +msgstr "Raft 空隙" + +#: fdmprinter.def.json +msgctxt "raft_airgap description" +msgid "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft." +msgstr "模型最后的 raft 层与第一层之间的间隙。 只有第一层被提高了这个量,以便降低 raft 层和模型之间的附着。 让 raft 更容易剥离。" + +#: fdmprinter.def.json +msgctxt "layer_0_z_overlap label" +msgid "Initial Layer Z Overlap" +msgstr "起始层 Z 重叠" + +#: fdmprinter.def.json +msgctxt "layer_0_z_overlap description" +msgid "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount." +msgstr "使模型的第一层和第二层在 Z 方向上重叠以补偿在空隙中损失的耗材。 第一个模型层上方的所有模型将向下移动此重叠量。" + +#: fdmprinter.def.json +msgctxt "raft_surface_layers label" +msgid "Raft Top Layers" +msgstr "Raft 顶层" + +#: fdmprinter.def.json +msgctxt "raft_surface_layers description" +msgid "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1." +msgstr "第 2 个 raft 层上方的顶层数量。 这些是模型所在的完全填充层。 第二层会产生比第一层更平滑的顶部表面。" + +#: fdmprinter.def.json +msgctxt "raft_surface_thickness label" +msgid "Raft Top Layer Thickness" +msgstr "Raft 顶层厚度" + +#: fdmprinter.def.json +msgctxt "raft_surface_thickness description" +msgid "Layer thickness of the top raft layers." +msgstr "顶部 Raft 层的层厚度。" + +#: fdmprinter.def.json +msgctxt "raft_surface_line_width label" +msgid "Raft Top Line Width" +msgstr "Raft 顶线宽度" + +#: fdmprinter.def.json +msgctxt "raft_surface_line_width description" +msgid "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth." +msgstr "Raft 顶部表面的走线宽度。 这些走线可以是细线,以便实现平滑的 Raft 顶部。" + +#: fdmprinter.def.json +msgctxt "raft_surface_line_spacing label" +msgid "Raft Top Spacing" +msgstr "Raft 顶部间距" + +#: fdmprinter.def.json +msgctxt "raft_surface_line_spacing description" +msgid "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid." +msgstr "顶部 Raft 层的 Raft 走线之间的距离。 间距应等于走线宽度,以便打造坚固表面。" + +#: fdmprinter.def.json +msgctxt "raft_interface_thickness label" +msgid "Raft Middle Thickness" +msgstr "Raft 中间厚度" + +#: fdmprinter.def.json +msgctxt "raft_interface_thickness description" +msgid "Layer thickness of the middle raft layer." +msgstr "中间 Raft 层的层厚度。" + +#: fdmprinter.def.json +msgctxt "raft_interface_line_width label" +msgid "Raft Middle Line Width" +msgstr "Raft 中间线宽度" + +#: fdmprinter.def.json +msgctxt "raft_interface_line_width description" +msgid "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate." +msgstr "中间 Raft 层的走线宽度。 让第二层挤出更多会导致走线粘着在打印平台上。" + +#: fdmprinter.def.json +msgctxt "raft_interface_line_spacing label" +msgid "Raft Middle Spacing" +msgstr "Raft 中间间距" + +#: fdmprinter.def.json +msgctxt "raft_interface_line_spacing description" +msgid "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers." +msgstr "中间 Raft 层的 Raft 走线之间的距离。 中间的间距应足够宽,同时也要足够密集,以便支撑顶部 Raft 层。" + +#: fdmprinter.def.json +msgctxt "raft_base_thickness label" +msgid "Raft Base Thickness" +msgstr "Raft 基础厚度" + +#: fdmprinter.def.json +msgctxt "raft_base_thickness description" +msgid "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate." +msgstr "基础 Raft 层的层厚度。 该层应为与打印机打印平台牢固粘着的厚层。" + +#: fdmprinter.def.json +msgctxt "raft_base_line_width label" +msgid "Raft Base Line Width" +msgstr "Raft 基础走线宽度" + +#: fdmprinter.def.json +msgctxt "raft_base_line_width description" +msgid "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion." +msgstr "基础 Raft 层的走线宽度。 这些走线应该是粗线,以便协助打印平台附着。" + +#: fdmprinter.def.json +msgctxt "raft_base_line_spacing label" +msgid "Raft Line Spacing" +msgstr "Raft 走线间距" + +#: fdmprinter.def.json +msgctxt "raft_base_line_spacing description" +msgid "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate." +msgstr "基础 Raft 层的 Raft 走线之间的距离。 宽间距方便将 Raft 从打印平台移除。" + +#: fdmprinter.def.json +msgctxt "raft_speed label" +msgid "Raft Print Speed" +msgstr "Raft 打印速度" + +#: fdmprinter.def.json +msgctxt "raft_speed description" +msgid "The speed at which the raft is printed." +msgstr "打印 Raft 的速度。" + +#: fdmprinter.def.json +msgctxt "raft_surface_speed label" +msgid "Raft Top Print Speed" +msgstr "Raft 顶部打印速度" + +#: fdmprinter.def.json +msgctxt "raft_surface_speed description" +msgid "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines." +msgstr "打印顶部 Raft 层的速度。 这些层应以较慢的速度打印,以便喷嘴缓慢地整平临近的表面走线。" + +#: fdmprinter.def.json +msgctxt "raft_interface_speed label" +msgid "Raft Middle Print Speed" +msgstr "Raft 中间打印速度" + +#: fdmprinter.def.json +msgctxt "raft_interface_speed description" +msgid "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." +msgstr "打印中间 Raft 层的速度。 该层应以很慢的速度打印,因为喷嘴所出的材料量非常高。" + +#: fdmprinter.def.json +msgctxt "raft_base_speed label" +msgid "Raft Base Print Speed" +msgstr "Raft 基础打印速度" + +#: fdmprinter.def.json +msgctxt "raft_base_speed description" +msgid "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." +msgstr "打印基础 Raft 层的速度。 该层应以很慢的速度打印,因为喷嘴所出的材料量非常高。" + +#: fdmprinter.def.json +msgctxt "raft_acceleration label" +msgid "Raft Print Acceleration" +msgstr "Raft 打印加速度" + +#: fdmprinter.def.json +msgctxt "raft_acceleration description" +msgid "The acceleration with which the raft is printed." +msgstr "打印 Raft 的加速度。" + +#: fdmprinter.def.json +msgctxt "raft_surface_acceleration label" +msgid "Raft Top Print Acceleration" +msgstr "Raft 顶部打印加速度" + +#: fdmprinter.def.json +msgctxt "raft_surface_acceleration description" +msgid "The acceleration with which the top raft layers are printed." +msgstr "打印顶部 Raft 层的加速度。" + +#: fdmprinter.def.json +msgctxt "raft_interface_acceleration label" +msgid "Raft Middle Print Acceleration" +msgstr "Raft 中间打印加速度" + +#: fdmprinter.def.json +msgctxt "raft_interface_acceleration description" +msgid "The acceleration with which the middle raft layer is printed." +msgstr "打印中间 Raft 层的加速度。" + +#: fdmprinter.def.json +msgctxt "raft_base_acceleration label" +msgid "Raft Base Print Acceleration" +msgstr "Raft 基础打印加速度" + +#: fdmprinter.def.json +msgctxt "raft_base_acceleration description" +msgid "The acceleration with which the base raft layer is printed." +msgstr "打印基础 Raft 层的加速度。" + +#: fdmprinter.def.json +msgctxt "raft_jerk label" +msgid "Raft Print Jerk" +msgstr "Raft 打印抖动速度" + +#: fdmprinter.def.json +msgctxt "raft_jerk description" +msgid "The jerk with which the raft is printed." +msgstr "打印 Raft 的抖动速度。" + +#: fdmprinter.def.json +msgctxt "raft_surface_jerk label" +msgid "Raft Top Print Jerk" +msgstr "Raft 顶部打印抖动速度" + +#: fdmprinter.def.json +msgctxt "raft_surface_jerk description" +msgid "The jerk with which the top raft layers are printed." +msgstr "打印顶部 Raft 层的抖动速度。" + +#: fdmprinter.def.json +msgctxt "raft_interface_jerk label" +msgid "Raft Middle Print Jerk" +msgstr "Raft 中间打印抖动速度" + +#: fdmprinter.def.json +msgctxt "raft_interface_jerk description" +msgid "The jerk with which the middle raft layer is printed." +msgstr "打印中间 Raft 层的抖动速度。" + +#: fdmprinter.def.json +msgctxt "raft_base_jerk label" +msgid "Raft Base Print Jerk" +msgstr "Raft 基础打印抖动速度" + +#: fdmprinter.def.json +msgctxt "raft_base_jerk description" +msgid "The jerk with which the base raft layer is printed." +msgstr "打印基础 Raft 层的抖动速度。" + +#: fdmprinter.def.json +msgctxt "raft_fan_speed label" +msgid "Raft Fan Speed" +msgstr "Raft 风扇速度" + +#: fdmprinter.def.json +msgctxt "raft_fan_speed description" +msgid "The fan speed for the raft." +msgstr "Raft 的风扇速度。" + +#: fdmprinter.def.json +msgctxt "raft_surface_fan_speed label" +msgid "Raft Top Fan Speed" +msgstr "Raft 顶部风扇速度" + +#: fdmprinter.def.json +msgctxt "raft_surface_fan_speed description" +msgid "The fan speed for the top raft layers." +msgstr "顶部 Raft 层的风扇速度。" + +#: fdmprinter.def.json +msgctxt "raft_interface_fan_speed label" +msgid "Raft Middle Fan Speed" +msgstr "Raft 中间风扇速度" + +#: fdmprinter.def.json +msgctxt "raft_interface_fan_speed description" +msgid "The fan speed for the middle raft layer." +msgstr "中间 Raft 层的风扇速度。" + +#: fdmprinter.def.json +msgctxt "raft_base_fan_speed label" +msgid "Raft Base Fan Speed" +msgstr "Raft 基础风扇速度" + +#: fdmprinter.def.json +msgctxt "raft_base_fan_speed description" +msgid "The fan speed for the base raft layer." +msgstr "基础 Raft 层的风扇速度。" + +#: fdmprinter.def.json +msgctxt "dual label" +msgid "Dual Extrusion" +msgstr "双重挤出" + +#: fdmprinter.def.json +msgctxt "dual description" +msgid "Settings used for printing with multiple extruders." +msgstr "利用多个挤出机进行打印所用的设置。" + +#: fdmprinter.def.json +msgctxt "prime_tower_enable label" +msgid "Enable Prime Tower" +msgstr "启用装填塔" + +#: fdmprinter.def.json +msgctxt "prime_tower_enable description" +msgid "Print a tower next to the print which serves to prime the material after each nozzle switch." +msgstr "在打印品相邻处打印一个塔,用于在每个喷嘴切换后装填材料。" + +#: fdmprinter.def.json +msgctxt "prime_tower_size label" +msgid "Prime Tower Size" +msgstr "装填塔尺寸" + +#: fdmprinter.def.json +msgctxt "prime_tower_size description" +msgid "The width of the prime tower." +msgstr "装填塔的宽度。" + +#: fdmprinter.def.json +msgctxt "prime_tower_min_volume label" +msgid "Prime Tower Minimum Volume" +msgstr "装填塔最小体积" + +#: fdmprinter.def.json +msgctxt "prime_tower_min_volume description" +msgid "The minimum volume for each layer of the prime tower in order to purge enough material." +msgstr "为了清除足够的材料,装填塔每层的最小体积。" + +#: fdmprinter.def.json +msgctxt "prime_tower_wall_thickness label" +msgid "Prime Tower Thickness" +msgstr "装填塔厚度" + +#: fdmprinter.def.json +msgctxt "prime_tower_wall_thickness description" +msgid "The thickness of the hollow prime tower. A thickness larger than half the Prime Tower Minimum Volume will result in a dense prime tower." +msgstr "空装填塔的厚度。 如果厚度大于装填塔最小体积的一半,则将打造一个密集的装填塔。" + +#: fdmprinter.def.json +msgctxt "prime_tower_position_x label" +msgid "Prime Tower X Position" +msgstr "装填塔 X 位置" + +#: fdmprinter.def.json +msgctxt "prime_tower_position_x description" +msgid "The x coordinate of the position of the prime tower." +msgstr "装填塔位置的 X 坐标。" + +#: fdmprinter.def.json +msgctxt "prime_tower_position_y label" +msgid "Prime Tower Y Position" +msgstr "装填塔 Y 位置" + +#: fdmprinter.def.json +msgctxt "prime_tower_position_y description" +msgid "The y coordinate of the position of the prime tower." +msgstr "装填塔位置的 y 坐标。" + +#: fdmprinter.def.json +msgctxt "prime_tower_flow label" +msgid "Prime Tower Flow" +msgstr "装填塔流量" + +#: fdmprinter.def.json +msgctxt "prime_tower_flow description" +msgid "Flow compensation: the amount of material extruded is multiplied by this value." +msgstr "流量补偿:挤出的材料量乘以此值。" + +#: fdmprinter.def.json +msgctxt "prime_tower_wipe_enabled label" +msgid "Wipe Inactive Nozzle on Prime Tower" +msgstr "擦拭装填塔上的不活动喷嘴" + +#: fdmprinter.def.json +msgctxt "prime_tower_wipe_enabled description" +msgid "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower." +msgstr "在用一个喷嘴打印装填塔后,从装填塔上的另一个喷嘴擦去渗出的材料。" + +#: fdmprinter.def.json +msgctxt "dual_pre_wipe label" +msgid "Wipe Nozzle After Switch" +msgstr "切换后擦拭喷嘴" + +#: fdmprinter.def.json +msgctxt "dual_pre_wipe description" +msgid "After switching extruder, wipe the oozed material off of the nozzle on the first thing printed. This performs a safe slow wipe move at a place where the oozed material causes least harm to the surface quality of your print." +msgstr "切换挤出机后,在打印的第一个物件上擦去喷嘴上的渗出材料。 这会在渗出材料对打印品表面品质造成最小损害的位置进行缓慢安全的擦拭动作。" + +#: fdmprinter.def.json +msgctxt "prime_tower_purge_volume label" +msgid "Prime Tower Purge Volume" +msgstr "装填塔清洗量" + +#: fdmprinter.def.json +msgctxt "prime_tower_purge_volume description" +msgid "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle." +msgstr "在装填塔上进行擦拭时要清洗的耗材量。 清洗可用于补偿在喷嘴不活动期间由于渗出而损失的耗材。" + +#: fdmprinter.def.json +msgctxt "ooze_shield_enabled label" +msgid "Enable Ooze Shield" +msgstr "启用渗出罩" + +#: fdmprinter.def.json +msgctxt "ooze_shield_enabled description" +msgid "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle." +msgstr "启用外部渗出罩。 这将在模型周围创建一个外壳,如果与第一个喷嘴处于相同的高度,则可能会擦拭第二个喷嘴。" + +#: fdmprinter.def.json +msgctxt "ooze_shield_angle label" +msgid "Ooze Shield Angle" +msgstr "渗出罩角度" + +#: fdmprinter.def.json +msgctxt "ooze_shield_angle description" +msgid "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material." +msgstr "渗出罩中的一个部件将具备的最大角度。 角度 0 度时为垂直,角度 90 度时为水平。 较小的角度会降低渗出罩失效次数,但会耗费更多材料。" + +#: fdmprinter.def.json +msgctxt "ooze_shield_dist label" +msgid "Ooze Shield Distance" +msgstr "渗出罩距离" + +#: fdmprinter.def.json +msgctxt "ooze_shield_dist description" +msgid "Distance of the ooze shield from the print, in the X/Y directions." +msgstr "渗出罩在 X/Y 方向距打印品的距离。" + +#: fdmprinter.def.json +msgctxt "meshfix label" +msgid "Mesh Fixes" +msgstr "网格修复" + +#: fdmprinter.def.json +msgctxt "meshfix description" +msgid "category_fixes" +msgstr "category_fixes" + +#: fdmprinter.def.json +msgctxt "meshfix_union_all label" +msgid "Union Overlapping Volumes" +msgstr "联合覆盖体积" + +#: fdmprinter.def.json +msgctxt "meshfix_union_all description" +msgid "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear." +msgstr "忽略由网格内的重叠体积产生的内部几何,并将多个部分作为一个打印。 这可能会导致意外的内部孔洞消失。" + +#: fdmprinter.def.json +msgctxt "meshfix_union_all_remove_holes label" +msgid "Remove All Holes" +msgstr "移除所有孔洞" + +#: fdmprinter.def.json +msgctxt "meshfix_union_all_remove_holes description" +msgid "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below." +msgstr "移除每层的孔洞,仅保留外部形状。 这会忽略任何不可见的内部几何。 但是,也会忽略可从上方或下方看到的层孔洞。" + +#: fdmprinter.def.json +msgctxt "meshfix_extensive_stitching label" +msgid "Extensive Stitching" +msgstr "广泛缝合" + +#: fdmprinter.def.json +msgctxt "meshfix_extensive_stitching description" +msgid "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time." +msgstr "广泛缝合尝试通过接触多边形来闭合孔洞,以此缝合网格中的开孔。 此选项可能会产生大量的处理时间。" + +#: fdmprinter.def.json +msgctxt "meshfix_keep_open_polygons label" +msgid "Keep Disconnected Faces" +msgstr "保留断开连接的面" + +#: fdmprinter.def.json +msgctxt "meshfix_keep_open_polygons description" +msgid "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper GCode." +msgstr "一般情况下,Cura 会尝试缝合网格中的小孔,并移除有大孔的部分层。 启用此选项将保留那些无法缝合的部分。 当其他所有方法都无法产生正确的 GCode 时,该选项应该被用作最后手段。" + +#: fdmprinter.def.json +msgctxt "multiple_mesh_overlap label" +msgid "Merged Meshes Overlap" +msgstr "合并网格重叠" + +#: fdmprinter.def.json +msgctxt "multiple_mesh_overlap description" +msgid "Make meshes which are touching each other overlap a bit. This makes them bond together better." +msgstr "让彼此接触的网格略微重叠。 这会让它们更好地粘合在一起。" + +#: fdmprinter.def.json +msgctxt "carve_multiple_volumes label" +msgid "Remove Mesh Intersection" +msgstr "移除网格交叉" + +#: fdmprinter.def.json +msgctxt "carve_multiple_volumes description" +msgid "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other." +msgstr "移除多个网格互相重叠的区域。 如果合并的双材料模型彼此重叠,此选项可能适用。" + +#: fdmprinter.def.json +msgctxt "alternate_carve_order label" +msgid "Alternate Mesh Removal" +msgstr "交替网格移除" + +#: fdmprinter.def.json +msgctxt "alternate_carve_order description" +msgid "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes." +msgstr "切换为与每个层相交的网格相交体积,以便重叠的网格交织在一起。 关闭此设置将使其中一个网格获得重叠中的所有体积,同时将其从其他网格中移除。" + +#: fdmprinter.def.json +msgctxt "blackmagic label" +msgid "Special Modes" +msgstr "特殊模式" + +#: fdmprinter.def.json +msgctxt "blackmagic description" +msgid "category_blackmagic" +msgstr "category_blackmagic" + +#: fdmprinter.def.json +msgctxt "print_sequence label" +msgid "Print Sequence" +msgstr "打印序列" + +#: fdmprinter.def.json +msgctxt "print_sequence description" +msgid "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes." +msgstr "是否一次打印一层中的所有模型或等待一个模型完成后再转到下一个模型。 排队模式只有在所有模型以一种整个打印头可以在各个模型之间移动的方式分隔开,且所有模型都低于喷嘴和 X / Y 轴之间距离的情况下可用。" + +#: fdmprinter.def.json +msgctxt "print_sequence option all_at_once" +msgid "All at Once" +msgstr "同时打印" + +#: fdmprinter.def.json +msgctxt "print_sequence option one_at_a_time" +msgid "One at a Time" +msgstr "排队打印" + +#: fdmprinter.def.json +msgctxt "infill_mesh label" +msgid "Infill Mesh" +msgstr "填充网格" + +#: fdmprinter.def.json +msgctxt "infill_mesh description" +msgid "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh." +msgstr "使用此网格修改与其重叠的其他网格的填充物。 利用此网格的区域替换其他网格的填充区域。 建议仅为此网格打印一个壁,而不打印顶部/底部皮肤。" + +#: fdmprinter.def.json +msgctxt "infill_mesh_order label" +msgid "Infill Mesh Order" +msgstr "填充网格顺序" + +#: fdmprinter.def.json +msgctxt "infill_mesh_order description" +msgid "Determines which infill mesh is inside the infill of another infill mesh. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes." +msgstr "确定哪个填充网格在另一个填充网格的填充物内。 顺序较高的填充网格将修改顺序较低的填充网格以及普通网格的填充物。" + +#: fdmprinter.def.json +msgctxt "cutting_mesh label" +msgid "Cutting Mesh" +msgstr "切割网格" + +#: fdmprinter.def.json +msgctxt "cutting_mesh description" +msgid "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder." +msgstr "将此网格的体积限制在其他网格内。 您可以使用它来制作采用不同的设置以及完全不同的挤出机的网格打印的特定区域。" + +#: fdmprinter.def.json +msgctxt "mold_enabled label" +msgid "Mold" +msgstr "模具" + +#: fdmprinter.def.json +msgctxt "mold_enabled description" +msgid "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate." +msgstr "将模型作为模具打印,可进行铸造,以便获取与打印平台上的模型类似的模型。" + +#: fdmprinter.def.json +msgctxt "mold_width label" +msgid "Minimal Mold Width" +msgstr "最小模具宽度" + +#: fdmprinter.def.json +msgctxt "mold_width description" +msgid "The minimal distance between the ouside of the mold and the outside of the model." +msgstr "模具外侧和模型外侧之间的最小距离。" + +#: fdmprinter.def.json +msgctxt "mold_roof_height label" +msgid "Mold Roof Height" +msgstr "模具顶板高度" + +#: fdmprinter.def.json +msgctxt "mold_roof_height description" +msgid "The height above horizontal parts in your model which to print mold." +msgstr "用于打印模具的模型水平部分上方的高度。" + +#: fdmprinter.def.json +msgctxt "mold_angle label" +msgid "Mold Angle" +msgstr "模具角度" + +#: fdmprinter.def.json +msgctxt "mold_angle description" +msgid "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model." +msgstr "为模具创建的外壁的悬垂角度。 0° 将使模具的外壳垂直,而 90° 将使模型的外部遵循模型的轮廓。" + +#: fdmprinter.def.json +msgctxt "support_mesh label" +msgid "Support Mesh" +msgstr "支撑网格" + +#: fdmprinter.def.json +msgctxt "support_mesh description" +msgid "Use this mesh to specify support areas. This can be used to generate support structure." +msgstr "使用此网格指定支撑区域。 可用于生成支撑结构。" + +#: fdmprinter.def.json +msgctxt "support_mesh_drop_down label" +msgid "Drop Down Support Mesh" +msgstr "下拉式支撑网格" + +#: fdmprinter.def.json +msgctxt "support_mesh_drop_down description" +msgid "Make support everywhere below the support mesh, so that there's no overhang in the support mesh." +msgstr "在支撑网格下方的所有位置进行支撑,让支撑网格中没有悬垂。" + +#: fdmprinter.def.json +msgctxt "anti_overhang_mesh label" +msgid "Anti Overhang Mesh" +msgstr "防悬网格" + +#: fdmprinter.def.json +msgctxt "anti_overhang_mesh description" +msgid "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure." +msgstr "使用此网格指定模型的任何部分不应被检测为悬垂的区域。 可用于移除不需要的支撑结构。" + +#: fdmprinter.def.json +msgctxt "magic_mesh_surface_mode label" +msgid "Surface Mode" +msgstr "表面模式" + +#: fdmprinter.def.json +msgctxt "magic_mesh_surface_mode description" +msgid "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces." +msgstr "将模型作为仅表面、一个空间或多个具有松散表面的空间处理。 正常打印模式仅打印封闭的空间。 “表面”打印跟踪网格表面的单个壁,没有填充物,也没有顶部/底部皮肤。 \"两者都\"将封闭空间正常打印,并将任何剩余多边形作为表面打印。" + +#: fdmprinter.def.json +msgctxt "magic_mesh_surface_mode option normal" +msgid "Normal" +msgstr "正常" + +#: fdmprinter.def.json +msgctxt "magic_mesh_surface_mode option surface" +msgid "Surface" +msgstr "表面" + +#: fdmprinter.def.json +msgctxt "magic_mesh_surface_mode option both" +msgid "Both" +msgstr "两者都" + +#: fdmprinter.def.json +msgctxt "magic_spiralize label" +msgid "Spiralize Outer Contour" +msgstr "螺旋打印外轮廓" + +#: fdmprinter.def.json +msgctxt "magic_spiralize description" +msgid "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part." +msgstr "螺旋打印实现外部边缘的平滑 Z 移动。 这会在整个打印上建立一个稳定的 Z 增量。 该功能会将一个实心模型转变为具有实体底部的单壁打印。 只有在当每一层仅包含一个部分时才应启用此功能。" + +#: fdmprinter.def.json +msgctxt "smooth_spiralized_contours label" +msgid "Smooth Spiralized Contours" +msgstr "平滑螺旋轮廓" + +#: fdmprinter.def.json +msgctxt "smooth_spiralized_contours description" +msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." +msgstr "平滑螺旋轮廓以减少 Z 缝的可见性(Z 缝应在打印品上几乎看不到,但在层视图中仍然可见)。 请注意,平滑操作将倾向于模糊精细的表面细节。" + +#: fdmprinter.def.json +msgctxt "relative_extrusion label" +msgid "Relative Extrusion" +msgstr "相对挤出" + +#: fdmprinter.def.json +msgctxt "relative_extrusion description" +msgid "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the Gcode. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any Gcode script is output." +msgstr "使用相对挤出而不是绝对挤出。 使用相对 E 步阶,对 Gcode 进行更轻松的后期处理。 但是,不是所有打印机均支持此功能,而且与绝对 E 步阶相比,它在沉积材料量上会产生非常轻微的偏差。 不论是否有此设置,挤出模式将始终设置为绝对挤出后才会输出任何 Gcode 脚本。" + +#: fdmprinter.def.json +msgctxt "experimental label" +msgid "Experimental" +msgstr "实验性" + +#: fdmprinter.def.json +msgctxt "experimental description" +msgid "experimental!" +msgstr "实验性!" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order label" +msgid "Optimize Wall Printing Order" +msgstr "优化壁打印顺序" + +#: fdmprinter.def.json +msgctxt "optimize_wall_printing_order description" +msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization." +msgstr "优化打印各个壁的顺序,以减少回抽次数和空驶距离。 启用此设置将对大部分零件有益,但有的则会耗费更长时间,因此请将优化和不优化的打印时间估计值进行对比。" + +#: fdmprinter.def.json +msgctxt "draft_shield_enabled label" +msgid "Enable Draft Shield" +msgstr "启用防风罩" + +#: fdmprinter.def.json +msgctxt "draft_shield_enabled description" +msgid "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily." +msgstr "这将在模型周围创建一个壁,该壁会吸住(热)空气并遮住外部气流。 对于容易卷曲的材料尤为有用。" + +#: fdmprinter.def.json +msgctxt "draft_shield_dist label" +msgid "Draft Shield X/Y Distance" +msgstr "防风罩 X/Y 距离" + +#: fdmprinter.def.json +msgctxt "draft_shield_dist description" +msgid "Distance of the draft shield from the print, in the X/Y directions." +msgstr "防风罩在 X/Y 方向与打印品的距离。" + +#: fdmprinter.def.json +msgctxt "draft_shield_height_limitation label" +msgid "Draft Shield Limitation" +msgstr "防风罩限制" + +#: fdmprinter.def.json +msgctxt "draft_shield_height_limitation description" +msgid "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height." +msgstr "设置防风罩的高度。 选择在模型的完整高度或有限高度处打印防风罩。" + +#: fdmprinter.def.json +msgctxt "draft_shield_height_limitation option full" +msgid "Full" +msgstr "完整" + +#: fdmprinter.def.json +msgctxt "draft_shield_height_limitation option limited" +msgid "Limited" +msgstr "有限" + +#: fdmprinter.def.json +msgctxt "draft_shield_height label" +msgid "Draft Shield Height" +msgstr "防风罩高度" + +#: fdmprinter.def.json +msgctxt "draft_shield_height description" +msgid "Height limitation of the draft shield. Above this height no draft shield will be printed." +msgstr "防风罩的高度限制。 在此高度以上不会打印任何防风罩。" + +#: fdmprinter.def.json +msgctxt "conical_overhang_enabled label" +msgid "Make Overhang Printable" +msgstr "使悬垂可打印" + +#: fdmprinter.def.json +msgctxt "conical_overhang_enabled description" +msgid "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical." +msgstr "更改打印模型的几何,以最大程度减少需要的支撑。 陡峭的悬垂物将变浅。 悬垂区域将下降变得更垂直。" + +#: fdmprinter.def.json +msgctxt "conical_overhang_angle label" +msgid "Maximum Model Angle" +msgstr "最大模型角度" + +#: fdmprinter.def.json +msgctxt "conical_overhang_angle description" +msgid "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way." +msgstr "在悬垂变得可打印后悬垂的最大角度。 当该值为 0° 时,所有悬垂将被与打印平台连接的模型的一个部分替代,如果为 90° 时,不会以任何方式更改模型。" + +#: fdmprinter.def.json +msgctxt "coasting_enable label" +msgid "Enable Coasting" +msgstr "启用滑行" + +#: fdmprinter.def.json +msgctxt "coasting_enable description" +msgid "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing." +msgstr "滑行会用一个空驶路径替代挤出路径的最后部分。 渗出材料用于打印挤出路径的最后部分,以便减少串接。" + +#: fdmprinter.def.json +msgctxt "coasting_volume label" +msgid "Coasting Volume" +msgstr "滑行体积" + +#: fdmprinter.def.json +msgctxt "coasting_volume description" +msgid "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed." +msgstr "该体积如不进行滑行则会渗出。 该值一般应接近喷嘴立方直径。" + +#: fdmprinter.def.json +msgctxt "coasting_min_volume label" +msgid "Minimum Volume Before Coasting" +msgstr "滑行前最小体积" + +#: fdmprinter.def.json +msgctxt "coasting_min_volume description" +msgid "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume." +msgstr "挤出路径在可以进行滑行前应拥有的最小体积。 对于较小的挤出路径,鲍登管内累积的压力较少,因此滑行空间采用线性扩展。 该值应始终大于滑行空间。" + +#: fdmprinter.def.json +msgctxt "coasting_speed label" +msgid "Coasting Speed" +msgstr "滑行速度" + +#: fdmprinter.def.json +msgctxt "coasting_speed description" +msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." +msgstr "滑行期间的移动速度,相对于挤出路径的速度。 建议采用略低于 100% 的值,因为在滑行移动期间鲍登管中的压力会下降。" + +#: fdmprinter.def.json +msgctxt "skin_alternate_rotation label" +msgid "Alternate Skin Rotation" +msgstr "交替皮肤旋转" + +#: fdmprinter.def.json +msgctxt "skin_alternate_rotation description" +msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." +msgstr "交替打印顶部/底部层的方向。 通常它们只进行对角线打印。 此设置添加仅限 X 和仅限 Y 的方向。" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size label" +msgid "Cross 3D Pocket Size" +msgstr "交叉 3D 气槽大小" + +#: fdmprinter.def.json +msgctxt "cross_infill_pocket_size description" +msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." +msgstr "交叉 3D 图案的四向交叉处的气槽大小,高度为图案与自身接触的位置。" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly label" +msgid "Alternate Cross 3D Pockets" +msgstr "交替交叉 3D 气槽" + +#: fdmprinter.def.json +msgctxt "cross_infill_apply_pockets_alternatingly description" +msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." +msgstr "仅在交叉 3D 图案的一半四向交叉处应用气槽,并在图案与自身接触的高度之间交替气槽的位置。" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_enabled label" +msgid "Spaghetti Infill" +msgstr "意面式填充" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_enabled description" +msgid "Print the infill every so often, so that the filament will curl up chaotically inside the object. This reduces print time, but the behaviour is rather unpredictable." +msgstr "经常打印填充物,使得耗材在模型内部混乱地卷曲。 这会缩短打印时间,但行为会难以预测。" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_stepped label" +msgid "Spaghetti Infill Stepping" +msgstr "意面式填充步阶" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_stepped description" +msgid "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print." +msgstr "是否逐步打印意面式填充或在打印结束时挤出所有填充耗材。" + +#: fdmprinter.def.json +msgctxt "spaghetti_max_infill_angle label" +msgid "Spaghetti Maximum Infill Angle" +msgstr "意面式填充 - 最大填充角度" + +#: fdmprinter.def.json +msgctxt "spaghetti_max_infill_angle description" +msgid "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer." +msgstr "相对于打印物内部的 Z 轴,之后将填充意面式填充物区域的最大角度。 降低此值会导致模型中的更多成角度部分在每层填充。" + +#: fdmprinter.def.json +msgctxt "spaghetti_max_height label" +msgid "Spaghetti Infill Maximum Height" +msgstr "意面式填充 - 最大填充高度" + +#: fdmprinter.def.json +msgctxt "spaghetti_max_height description" +msgid "The maximum height of inside space which can be combined and filled from the top." +msgstr "可以从顶部组合和填充的内部空间的最大高度。" + +#: fdmprinter.def.json +msgctxt "spaghetti_inset label" +msgid "Spaghetti Inset" +msgstr "意面式嵌入" + +#: fdmprinter.def.json +msgctxt "spaghetti_inset description" +msgid "The offset from the walls from where the spaghetti infill will be printed." +msgstr "从其开始打印意面式填充物的壁偏移量。" + +#: fdmprinter.def.json +msgctxt "spaghetti_flow label" +msgid "Spaghetti Flow" +msgstr "意面式流量" + +#: fdmprinter.def.json +msgctxt "spaghetti_flow description" +msgid "Adjusts the density of the spaghetti infill. Note that the Infill Density only controls the line spacing of the filling pattern, not the amount of extrusion for spaghetti infill." +msgstr "调整意面式填充的密度。 注意,填充密度仅控制填充图案的走线间距,而不是意面式填充的挤出量。" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_extra_volume label" +msgid "Spaghetti Infill Extra Volume" +msgstr "意面式填充额外体积" + +#: fdmprinter.def.json +msgctxt "spaghetti_infill_extra_volume description" +msgid "A correction term to adjust the total volume being extruded each time when filling spaghetti." +msgstr "一个用于调整每次进行意面式填充时挤出总量的修正期。" + +#: fdmprinter.def.json +msgctxt "support_conical_enabled label" +msgid "Enable Conical Support" +msgstr "启用锥形支撑" + +#: fdmprinter.def.json +msgctxt "support_conical_enabled description" +msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang." +msgstr "实验性功能: 让底部的支撑区域小于悬垂处的支撑区域。" + +#: fdmprinter.def.json +msgctxt "support_conical_angle label" +msgid "Conical Support Angle" +msgstr "锥形支撑角度" + +#: fdmprinter.def.json +msgctxt "support_conical_angle description" +msgid "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top." +msgstr "锥形支撑的倾斜角度。 角度 0 度时为垂直,角度 90 度时为水平。 较小的角度会让支撑更为牢固,但需要更多材料。 负角会让支撑底座比顶部宽。" + +#: fdmprinter.def.json +msgctxt "support_conical_min_width label" +msgid "Conical Support Minimum Width" +msgstr "锥形支撑最小宽度" + +#: fdmprinter.def.json +msgctxt "support_conical_min_width description" +msgid "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures." +msgstr "锥形支撑区域底部被缩小至的最小宽度。 宽度较小可导致不稳定的支撑结构。" + +#: fdmprinter.def.json +msgctxt "infill_hollow label" +msgid "Hollow Out Objects" +msgstr "挖空模型" + +#: fdmprinter.def.json +msgctxt "infill_hollow description" +msgid "Remove all infill and make the inside of the object eligible for support." +msgstr "移除所有填充物并让模型内部可以进行支撑。" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_enabled label" +msgid "Fuzzy Skin" +msgstr "模糊皮肤" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_enabled description" +msgid "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look." +msgstr "在打印外墙时随机抖动,使表面具有粗糙和模糊的外观。" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_thickness label" +msgid "Fuzzy Skin Thickness" +msgstr "模糊皮肤厚度" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_thickness description" +msgid "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered." +msgstr "在其中进行抖动的宽度。 建议让此值低于外壁宽度,因为内壁不会更改。" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_point_density label" +msgid "Fuzzy Skin Density" +msgstr "模糊皮肤密度" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_point_density description" +msgid "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution." +msgstr "在一层中的每个多边形上引入的点的平均密度。 注意,多边形的原始点被舍弃,因此低密度导致分辨率降低。" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_point_dist label" +msgid "Fuzzy Skin Point Distance" +msgstr "模糊皮肤点距离" + +#: fdmprinter.def.json +msgctxt "magic_fuzzy_skin_point_dist description" +msgid "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness." +msgstr "在每个走线部分引入的随机点之间的平均距离。 注意,多边形的原始点被舍弃,因此高平滑度导致分辨率降低。 该值必须大于模糊皮肤厚度的一半。" + +#: fdmprinter.def.json +msgctxt "wireframe_enabled label" +msgid "Wire Printing" +msgstr "单线打印(以下简称 WP)" + +#: fdmprinter.def.json +msgctxt "wireframe_enabled description" +msgid "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines." +msgstr "只打印一个具有稀疏网状结构的外表面,在“稀薄的空气中”打印。 这是通过在给定的 Z 间隔水平打印模型的轮廓来实现的,这些间隔通过上行线和下行斜线连接。" + +#: fdmprinter.def.json +msgctxt "wireframe_height label" +msgid "WP Connection Height" +msgstr "WP 连接高度" + +#: fdmprinter.def.json +msgctxt "wireframe_height description" +msgid "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing." +msgstr "两个水平部分之间上行线和下行斜线的高度。 这决定网结构的整体密度。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_inset label" +msgid "WP Roof Inset Distance" +msgstr "WP 顶板嵌入距离" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_inset description" +msgid "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing." +msgstr "在从顶板轮廓向内进行连接时所覆盖的距离。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed label" +msgid "WP Speed" +msgstr "WP 速度" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed description" +msgid "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing." +msgstr "挤出材料时喷嘴移动的速度。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_bottom label" +msgid "WP Bottom Printing Speed" +msgstr "WP 底部打印速度" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_bottom description" +msgid "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing." +msgstr "打印第一层的速度,该层是唯一接触打印平台的层。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_up label" +msgid "WP Upward Printing Speed" +msgstr "WP 上升打印速度" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_up description" +msgid "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing." +msgstr "“在稀薄空气中”向上打印走线的速度。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_down label" +msgid "WP Downward Printing Speed" +msgstr "WP 下降打印速度" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_down description" +msgid "Speed of printing a line diagonally downward. Only applies to Wire Printing." +msgstr "打印下行斜线的速度。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_flat label" +msgid "WP Horizontal Printing Speed" +msgstr "WP 水平打印速度" + +#: fdmprinter.def.json +msgctxt "wireframe_printspeed_flat description" +msgid "Speed of printing the horizontal contours of the model. Only applies to Wire Printing." +msgstr "打印模型水平轮廓的速度。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_flow label" +msgid "WP Flow" +msgstr "WP 打印流量" + +#: fdmprinter.def.json +msgctxt "wireframe_flow description" +msgid "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing." +msgstr "流量补偿:挤出的材料量乘以此值。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_flow_connection label" +msgid "WP Connection Flow" +msgstr "WP 连接流量" + +#: fdmprinter.def.json +msgctxt "wireframe_flow_connection description" +msgid "Flow compensation when going up or down. Only applies to Wire Printing." +msgstr "向上或向下时的流量补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_flow_flat label" +msgid "WP Flat Flow" +msgstr "WP 平面流量" + +#: fdmprinter.def.json +msgctxt "wireframe_flow_flat description" +msgid "Flow compensation when printing flat lines. Only applies to Wire Printing." +msgstr "打印平面走线时的流量补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_top_delay label" +msgid "WP Top Delay" +msgstr "WP 顶部延迟" + +#: fdmprinter.def.json +msgctxt "wireframe_top_delay description" +msgid "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing." +msgstr "向上移动后的延迟时间,以便上行走线硬化。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_bottom_delay label" +msgid "WP Bottom Delay" +msgstr "WP 底部延迟" + +#: fdmprinter.def.json +msgctxt "wireframe_bottom_delay description" +msgid "Delay time after a downward move. Only applies to Wire Printing." +msgstr "向下移动后的延迟时间。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_flat_delay label" +msgid "WP Flat Delay" +msgstr "WP 平面延迟" + +#: fdmprinter.def.json +msgctxt "wireframe_flat_delay description" +msgid "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing." +msgstr "两个水平部分之间的延迟时间。 引入这样的延迟可以在连接点处与先前的层产生更好的附着,而太长的延迟会引起下垂。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_up_half_speed label" +msgid "WP Ease Upward" +msgstr "WP 轻松上行" + +#: fdmprinter.def.json +msgctxt "wireframe_up_half_speed description" +msgid "" +"Distance of an upward move which is extruded with half speed.\n" +"This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." +msgstr "以半速挤出的上行移动的距离。\n这会与之前的层产生更好的附着,而不会将这些层中的材料过度加热。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_top_jump label" +msgid "WP Knot Size" +msgstr "WP 纽结大小" + +#: fdmprinter.def.json +msgctxt "wireframe_top_jump description" +msgid "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing." +msgstr "在上行走线的顶部创建一个小纽结,使连续的水平层有更好的机会与其连接。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_fall_down label" +msgid "WP Fall Down" +msgstr "WP 倒塌" + +#: fdmprinter.def.json +msgctxt "wireframe_fall_down description" +msgid "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing." +msgstr "材料在向上挤出后倒塌的距离。 将对此距离进行补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_drag_along label" +msgid "WP Drag Along" +msgstr "WP 拖行" + +#: fdmprinter.def.json +msgctxt "wireframe_drag_along description" +msgid "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing." +msgstr "向上挤出材料与斜向下挤出一起拖动的距离。 将对此距离进行补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_strategy label" +msgid "WP Strategy" +msgstr "WP 使用策略" + +#: fdmprinter.def.json +msgctxt "wireframe_strategy description" +msgid "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted." +msgstr "用于确定两个连续层在每个连接点连接的策略。 回抽可让上行走线在正确的位置硬化,但可能导致耗材磨损。 可以在上行走线的尾端进行打结以便提高与其连接的几率,并让走线冷却;但这会需要较慢的打印速度。 另一种策略是补偿上行走线顶部的下垂;然而,线条不会总是如预期的那样下降。" + +#: fdmprinter.def.json +msgctxt "wireframe_strategy option compensate" +msgid "Compensate" +msgstr "补偿" + +#: fdmprinter.def.json +msgctxt "wireframe_strategy option knot" +msgid "Knot" +msgstr "纽结" + +#: fdmprinter.def.json +msgctxt "wireframe_strategy option retract" +msgid "Retract" +msgstr "回抽" + +#: fdmprinter.def.json +msgctxt "wireframe_straight_before_down label" +msgid "WP Straighten Downward Lines" +msgstr "WP 拉直下行走线" + +#: fdmprinter.def.json +msgctxt "wireframe_straight_before_down description" +msgid "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing." +msgstr "水平走线部分所覆盖的斜下行走线的百分比。 这可以防止上行线最顶端点下垂。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_fall_down label" +msgid "WP Roof Fall Down" +msgstr "WP 顶板倒塌" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_fall_down description" +msgid "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing." +msgstr "打印时,在“稀薄空气中”打印的水平顶板走线倒塌的距离。 将对此距离进行补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_drag_along label" +msgid "WP Roof Drag Along" +msgstr "WP 顶板拖行" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_drag_along description" +msgid "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing." +msgstr "向内线的端部在返回至顶板外部轮廓时被拖行的距离。 将对此距离进行补偿。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_outer_delay label" +msgid "WP Roof Outer Delay" +msgstr "WP 顶板外部延迟" + +#: fdmprinter.def.json +msgctxt "wireframe_roof_outer_delay description" +msgid "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing." +msgstr "在成为顶板的孔的外围花费的时间。 较长的时间可确保更好的连接。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "wireframe_nozzle_clearance label" +msgid "WP Nozzle Clearance" +msgstr "WP 喷嘴间隙" + +#: fdmprinter.def.json +msgctxt "wireframe_nozzle_clearance description" +msgid "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing." +msgstr "喷嘴和水平下行线之间的距离。 较大的间隙会让斜下行线角度较平缓,进而使第二层的上行连接较少。 仅应用于单线打印。" + +#: fdmprinter.def.json +msgctxt "ironing_enabled label" +msgid "Enable Ironing" +msgstr "启用熨平" + +#: fdmprinter.def.json +msgctxt "ironing_enabled description" +msgid "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface." +msgstr "再一次经过顶部表面,但不挤出材料。 这是为了进一步融化顶部的塑料,打造更平滑的表面。" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer label" +msgid "Iron Only Highest Layer" +msgstr "仅熨平最高层" + +#: fdmprinter.def.json +msgctxt "ironing_only_highest_layer description" +msgid "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish." +msgstr "仅在网格的最后一层执行熨平。 如果较低的层不需要平滑的表面效果,这将节省时间。" + +#: fdmprinter.def.json +msgctxt "ironing_pattern label" +msgid "Ironing Pattern" +msgstr "熨平图案" + +#: fdmprinter.def.json +msgctxt "ironing_pattern description" +msgid "The pattern to use for ironing top surfaces." +msgstr "用于熨平顶部表面的图案。" + +#: fdmprinter.def.json +msgctxt "ironing_pattern option concentric" +msgid "Concentric" +msgstr "同心" + +#: fdmprinter.def.json +msgctxt "ironing_pattern option zigzag" +msgid "Zig Zag" +msgstr "锯齿形" + +#: fdmprinter.def.json +msgctxt "ironing_line_spacing label" +msgid "Ironing Line Spacing" +msgstr "熨平走线间距" + +#: fdmprinter.def.json +msgctxt "ironing_line_spacing description" +msgid "The distance between the lines of ironing." +msgstr "熨平走线之间的距离。" + +#: fdmprinter.def.json +msgctxt "ironing_flow label" +msgid "Ironing Flow" +msgstr "熨平流量" + +#: fdmprinter.def.json +msgctxt "ironing_flow description" +msgid "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface." +msgstr "熨平期间相对于正常皮肤走线的挤出材料量。 保持喷嘴填充状态有助于填充顶层表面的一些缝隙,但如填充过多则会导致表面上过度挤出和光点。" + +#: fdmprinter.def.json +msgctxt "ironing_inset label" +msgid "Ironing Inset" +msgstr "熨平嵌入" + +#: fdmprinter.def.json +msgctxt "ironing_inset description" +msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." +msgstr "与模型边缘保持的距离。 一直熨平至网格的边缘可能导致打印品出现锯齿状边缘。" + +#: fdmprinter.def.json +msgctxt "speed_ironing label" +msgid "Ironing Speed" +msgstr "熨平速度" + +#: fdmprinter.def.json +msgctxt "speed_ironing description" +msgid "The speed at which to pass over the top surface." +msgstr "通过顶部表面的速度。" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing label" +msgid "Ironing Acceleration" +msgstr "熨平加速度" + +#: fdmprinter.def.json +msgctxt "acceleration_ironing description" +msgid "The acceleration with which ironing is performed." +msgstr "执行熨平的加速度。" + +#: fdmprinter.def.json +msgctxt "jerk_ironing label" +msgid "Ironing Jerk" +msgstr "熨平抖动速度" + +#: fdmprinter.def.json +msgctxt "jerk_ironing description" +msgid "The maximum instantaneous velocity change while performing ironing." +msgstr "执行熨平时的最大瞬时速度变化。" + +#: fdmprinter.def.json +msgctxt "command_line_settings label" +msgid "Command Line Settings" +msgstr "命令行设置" + +#: fdmprinter.def.json +msgctxt "command_line_settings description" +msgid "Settings which are only used if CuraEngine isn't called from the Cura frontend." +msgstr "未从 Cura 前端调用 CuraEngine 时使用的设置。" + +#: fdmprinter.def.json +msgctxt "center_object label" +msgid "Center object" +msgstr "中心模型" + +#: fdmprinter.def.json +msgctxt "center_object description" +msgid "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved." +msgstr "是否将模型放置在打印平台中心 (0,0),而不是使用模型在其中保存的坐标系统。" + +#: fdmprinter.def.json +msgctxt "mesh_position_x label" +msgid "Mesh position x" +msgstr "网格位置 x" + +#: fdmprinter.def.json +msgctxt "mesh_position_x description" +msgid "Offset applied to the object in the x direction." +msgstr "应用在模型 x 方向上的偏移量。" + +#: fdmprinter.def.json +msgctxt "mesh_position_y label" +msgid "Mesh position y" +msgstr "网格位置 y" + +#: fdmprinter.def.json +msgctxt "mesh_position_y description" +msgid "Offset applied to the object in the y direction." +msgstr "应用在模型 y 方向上的偏移量。" + +#: fdmprinter.def.json +msgctxt "mesh_position_z label" +msgid "Mesh position z" +msgstr "网格位置 z" + +#: fdmprinter.def.json +msgctxt "mesh_position_z description" +msgid "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'." +msgstr "应用在模型 z 方向上的偏移量。 利用此选项,您可以执行过去被称为“模型沉降”的操作。" + +#: fdmprinter.def.json +msgctxt "mesh_rotation_matrix label" +msgid "Mesh Rotation Matrix" +msgstr "网格旋转矩阵" + +#: fdmprinter.def.json +msgctxt "mesh_rotation_matrix description" +msgid "Transformation matrix to be applied to the model when loading it from file." +msgstr "在将模型从文件中载入时应用在模型上的转换矩阵。" + +#~ msgctxt "wall_extruder_nr label" +#~ msgid "Wall Extruder" +#~ msgstr "壁挤出机" + +#~ msgctxt "wall_extruder_nr description" +#~ msgid "The extruder train used for printing the walls. This is used in multi-extrusion." +#~ msgstr "用于打印壁的挤出机组。 用于多重挤出。" + +#~ msgctxt "infill_pattern description" +#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." +#~ msgstr "打印填充材料的图案。 线条和锯齿形填充在交替层上的交换方向,从而降低材料成本。 网格、三角形、立方体、四面体和同心图案在每层完整打印。 立方体和四面体填充随每层变化,以在各个方向提供更均衡的强度分布。" + +#~ msgctxt "infill_pattern option tetrahedral" +#~ msgid "Tetrahedral" +#~ msgstr "正四面体" + +#~ msgctxt "expand_skins_into_infill label" +#~ msgid "Expand Skins Into Infill" +#~ msgstr "将皮肤扩展到填充物中" + +#~ msgctxt "expand_skins_into_infill description" +#~ msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." +#~ msgstr "扩展平面顶部和/或底部皮肤的皮肤区域。 默认情况下,皮肤会在环绕填充的壁线下方停止,但如果填充密度较低,则可能导致出现孔洞。 该设置将皮肤延展到壁线以外,因此下一层的填充物会停留在皮肤上。" + +#~ msgctxt "expand_upper_skins label" +#~ msgid "Expand Top Skins Into Infill" +#~ msgstr "将顶部皮肤扩展到填充物中" + +#~ msgctxt "expand_upper_skins description" +#~ msgid "Expand the top skin areas (areas with air above) so that they support infill above." +#~ msgstr "扩展顶部皮肤区域(上方有空气的区域),让它们支撑上方的填充物。" + +#~ msgctxt "expand_lower_skins label" +#~ msgid "Expand Bottom Skins Into Infill" +#~ msgstr "将底部皮肤扩展到填充物中" + +#~ msgctxt "expand_lower_skins description" +#~ msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." +#~ msgstr "扩展底部皮肤区域(下方有空气的区域),让它们由上下的填充层锚定。" + +#~ msgctxt "expand_skins_expand_distance description" +#~ msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." +#~ msgstr "皮肤扩展到填充物中的距离。 默认距离足以弥合填充线之间的间隙,并且在填充密度低时,可以防止在皮肤与壁接触的位置出现孔洞。 通常较小的距离就足够了。" + +#~ msgctxt "support_skip_some_zags label" +#~ msgid "Skip Some ZigZags Connections" +#~ msgstr "跳过部分锯齿形连接" + +#~ msgctxt "support_skip_some_zags description" +#~ msgid "Skip some ZigZags connections to make the support structure easier to break." +#~ msgstr "跳过部分锯齿形连接,让支撑结构更容易打破。" + +#~ msgctxt "support_zag_skip_count label" +#~ msgid "ZigZag Connection Skip Count" +#~ msgstr "锯齿形连接跳过计数" + +#~ msgctxt "support_zag_skip_count description" +#~ msgid "Skip one in every N connection lines to make the support structure easier to break." +#~ msgstr "每隔 N 个连接线跳过一次,让支撑结构更容易打破。" + +#~ msgctxt "machine_show_variants label" +#~ msgid "Show machine variants" +#~ msgstr "显示机器型号" + +#~ msgctxt "material_bed_temp_wait label" +#~ msgid "Wait for build plate heatup" +#~ msgstr "等待热床升温" + +#~ msgctxt "material_print_temp_wait label" +#~ msgid "Wait for nozzle heatup" +#~ msgstr "等待热床升温" + +#~ msgctxt "material_bed_temp_prepend label" +#~ msgid "Include build plate temperature" +#~ msgstr "包含热床温度" + +#~ msgctxt "machine_width label" +#~ msgid "Machine width" +#~ msgstr "机器宽度" + +#~ msgctxt "machine_depth label" +#~ msgid "Machine depth" +#~ msgstr "机器深度" + +#~ msgctxt "machine_shape label" +#~ msgid "Build plate shape" +#~ msgstr "打印平台形状" + +#~ msgctxt "machine_height label" +#~ msgid "Machine height" +#~ msgstr "机器高度" + +#~ msgctxt "machine_center_is_zero label" +#~ msgid "Is center origin" +#~ msgstr "机器中心为零点" + +#~ msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" +#~ msgid "RepRap (Marlin/Sprinter)" +#~ msgstr "RepRap (Marlin/Sprinter)" + +#~ msgctxt "machine_gcode_flavor option RepRap (Volumatric)" +#~ msgid "RepRap (Volumetric)" +#~ msgstr "RepRap (Volumetric)" \ No newline at end of file diff --git a/resources/images/cura-icon-32.png b/resources/images/cura-icon-32.png new file mode 100644 index 0000000000..5608ea00d4 Binary files /dev/null and b/resources/images/cura-icon-32.png differ diff --git a/resources/images/cura.png b/resources/images/cura.png index 56908f3719..4fef842ff4 100644 Binary files a/resources/images/cura.png and b/resources/images/cura.png differ diff --git a/resources/images/fabtotum_platform.png b/resources/images/fabtotum_platform.png new file mode 100644 index 0000000000..481bc75e43 Binary files /dev/null and b/resources/images/fabtotum_platform.png differ diff --git a/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl b/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl old mode 100755 new mode 100644 diff --git a/resources/meshes/builder_premium_platform.stl b/resources/meshes/builder_premium_platform.stl new file mode 100644 index 0000000000..b315d4b6d4 Binary files /dev/null and b/resources/meshes/builder_premium_platform.stl differ diff --git a/resources/meshes/deltacomb.stl b/resources/meshes/deltacomb.stl new file mode 100644 index 0000000000..7be5c33fd7 Binary files /dev/null and b/resources/meshes/deltacomb.stl differ diff --git a/resources/meshes/fabtotum_platform.stl b/resources/meshes/fabtotum_platform.stl new file mode 100644 index 0000000000..a87a034acb Binary files /dev/null and b/resources/meshes/fabtotum_platform.stl differ diff --git a/resources/qml/AboutDialog.qml b/resources/qml/AboutDialog.qml index 7df5709654..36cebe594a 100644 --- a/resources/qml/AboutDialog.qml +++ b/resources/qml/AboutDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -14,8 +14,8 @@ UM.Dialog //: About dialog title title: catalog.i18nc("@title:window","About Cura") - minimumWidth: 500 - minimumHeight: 650 + minimumWidth: 500 * screenScaleFactor + minimumHeight: 650 * screenScaleFactor width: minimumWidth height: minimumHeight @@ -40,7 +40,7 @@ UM.Dialog { id: version - text: "Cura %1".arg(UM.Application.version) + text: catalog.i18nc("@label","version: %1").arg(UM.Application.version) font: UM.Theme.getFont("large") anchors.right : logo.right anchors.top: logo.bottom @@ -115,10 +115,10 @@ UM.Dialog } Component.onCompleted: { - projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" }); - projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" }); + projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" }); + projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" }); projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" }); - projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" }); + projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" }); projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" }); projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" }); @@ -128,10 +128,11 @@ UM.Dialog projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" }); projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" }); projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" }); - projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "AGPLv3", url: "https://github.com/ultimaker/libsavitar" }); + projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" }); projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" }); projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" }); projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" }); + projectsModel.append({ name:"Requests", description: catalog.i18nc("@Label", "Python HTTP library"), license: "GPL", url: "http://docs.python-requests.org" }); projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" }); projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml old mode 100755 new mode 100644 index 3169f4f170..cc27520a02 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. pragma Singleton @@ -17,6 +17,8 @@ Item property alias undo: undoAction; property alias redo: redoAction; + property alias homeCamera: homeCameraAction; + property alias deleteSelection: deleteSelectionAction; property alias centerSelection: centerSelectionAction; property alias multiplySelection: multiplySelectionAction; @@ -59,6 +61,9 @@ Item property alias configureSettingVisibility: configureSettingVisibilityAction + property alias browsePlugins: browsePluginsAction + property alias configurePlugins: configurePluginsAction + UM.I18nCatalog{id: catalog; name:"cura"} Action @@ -96,6 +101,13 @@ Item shortcut: StandardKey.Quit; } + Action + { + id: homeCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&Reset camera position"); + onTriggered: CuraActions.homeCamera(); + } + Action { id: preferencesAction; @@ -353,4 +365,18 @@ Item text: catalog.i18nc("@action:menu", "Configure setting visibility..."); iconName: "configure" } + + Action + { + id: browsePluginsAction + text: catalog.i18nc("@action:menu", "Browse plugins...") + iconName: "plugins_browse" + } + + Action + { + id: configurePluginsAction + text: catalog.i18nc("@action:menu", "Installed plugins..."); + iconName: "plugins_configure" + } } diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 756badc4d2..109ea07695 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index df451a58cf..a53c711f9d 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -18,8 +18,8 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Open project file") - width: 450 - height: 150 + width: 450 * screenScaleFactor + height: 150 * screenScaleFactor maximumHeight: height maximumWidth: width @@ -61,13 +61,14 @@ UM.Dialog Column { anchors.fill: parent - anchors.leftMargin: 20 - anchors.rightMargin: 20 - anchors.bottomMargin: 20 - spacing: 10 + anchors.leftMargin: 20 * screenScaleFactor + anchors.rightMargin: 20 * screenScaleFactor + anchors.bottomMargin: 10 * screenScaleFactor + spacing: 10 * screenScaleFactor Label { + id: questionText text: catalog.i18nc("@text:window", "This is a Cura project file. Would you like to open it as a project or import the models from it?") anchors.left: parent.left anchors.right: parent.right @@ -80,11 +81,18 @@ UM.Dialog id: rememberChoiceCheckBox text: catalog.i18nc("@text:window", "Remember my choice") checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" + style: CheckBoxStyle { + label: Label { + text: control.text + font: UM.Theme.getFont("default") + } + } } // Buttons Item { + id: buttonBar anchors.right: parent.right anchors.left: parent.left height: childrenRect.height diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml old mode 100755 new mode 100644 index 3aaf63a2fd..2fd19a8a03 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -16,21 +16,17 @@ UM.MainWindow { id: base //: Cura application window title - title: catalog.i18nc("@title:window","Cura"); + title: catalog.i18nc("@title:window","Ultimaker Cura"); viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) property bool showPrintMonitor: false Connections { target: Printer - onShowPrintMonitor: - { - if (show) - { + onShowPrintMonitor: { + if (show) { topbar.startMonitoringPrint() - } - else - { + } else { topbar.stopMonitoringPrint() } } @@ -211,7 +207,7 @@ UM.MainWindow id: sub_menu title: model.name; visible: actions != null - enabled:actions != null + enabled: actions != null Instantiator { model: actions @@ -230,6 +226,15 @@ UM.MainWindow } } + Menu + { + id: plugin_menu + title: catalog.i18nc("@title:menu menubar:toplevel", "P&lugins") + + MenuItem { action: Cura.Actions.browsePlugins } + MenuItem { action: Cura.Actions.configurePlugins } + } + Menu { title: catalog.i18nc("@title:menu menubar:toplevel","P&references"); @@ -319,24 +324,6 @@ UM.MainWindow } } - Loader - { - id: view_panel - - property bool hugBottom: parent.height < viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height - - anchors.bottom: parent.bottom // panel is always anchored to the bottom only, because dynamically switching between bottom and top results in stretching the height - anchors.bottomMargin: hugBottom ? 0 : parent.height - (viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height) - anchors.left: viewModeButton.left; - anchors.leftMargin: hugBottom ? viewModeButton.width + UM.Theme.getSize("default_margin").width : 0 - - property var buttonTarget: Qt.point(viewModeButton.x + viewModeButton.width / 2, viewModeButton.y + viewModeButton.height / 2) - - height: childrenRect.height; - - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : ""; - } - Button { id: openFileButton; @@ -353,28 +340,6 @@ UM.MainWindow action: Cura.Actions.open; } - Image - { - id: logo - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width; - bottom: parent.bottom - bottomMargin: UM.Theme.getSize("default_margin").height; - } - - source: UM.Theme.getImage("logo"); - width: UM.Theme.getSize("logo").width; - height: UM.Theme.getSize("logo").height; - z: -1; - - sourceSize.width: width; - sourceSize.height: height; - } - - - Toolbar { id: toolbar; @@ -415,25 +380,6 @@ UM.MainWindow monitoringPrint: base.showPrintMonitor } - Button - { - id: viewModeButton - - anchors - { - top: toolbar.bottom; - topMargin: UM.Theme.getSize("window_margin").height; - left: parent.left; - } - text: catalog.i18nc("@action:button","View Mode"); - iconSource: UM.Theme.getIcon("viewmode"); - - style: UM.Theme.styles.tool_button; - tooltip: ""; - enabled: !PrintInformation.preSliced - menu: ViewMenu { } - } - Rectangle { id: viewportOverlay @@ -447,9 +393,7 @@ UM.MainWindow right: sidebar.left } visible: opacity > 0 - opacity: base.showPrintMonitor ? 0.75 : 0 - - Behavior on opacity { NumberAnimation { duration: 100; } } + opacity: base.showPrintMonitor ? 1 : 0 MouseArea { anchors.fill: parent @@ -466,6 +410,9 @@ UM.MainWindow anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenterOffset: - UM.Theme.getSize("sidebar").width / 2 + anchors.verticalCenterOffset: UM.Theme.getSize("sidebar_header").height / 2 + property real maximumWidth: viewportOverlay.width + property real maximumHeight: viewportOverlay.height } UM.MessageStack @@ -605,6 +552,30 @@ UM.MainWindow } } + // show the installed plugins page in the preferences dialog + Connections + { + target: Cura.Actions.configurePlugins + onTriggered: + { + preferences.visible = true + preferences.setPage(5) + } + } + + UM.ExtensionModel { + id: curaExtensions + } + + // show the plugin browser dialog + Connections + { + target: Cura.Actions.browsePlugins + onTriggered: { + curaExtensions.callExtensionMethod("Plugin Browser", "browsePlugins") + } + } + Timer { id: createProfileTimer @@ -878,7 +849,7 @@ UM.MainWindow Connections { - target: Printer + target: CuraApplication onShowDiscardOrKeepProfileChanges: { discardOrKeepProfileChangesDialog.show() @@ -923,6 +894,11 @@ UM.MainWindow if(!base.visible) { base.visible = true; + } + + // check later if the user agreement dialog has been closed + if (CuraApplication.needToShowUserAgreement) + { restart(); } else if(Cura.MachineManager.activeMachineId == null || Cura.MachineManager.activeMachineId == "") diff --git a/resources/qml/DiscardOrKeepProfileChangesDialog.qml b/resources/qml/DiscardOrKeepProfileChangesDialog.qml index 74b313a6b5..915a11fde2 100644 --- a/resources/qml/DiscardOrKeepProfileChangesDialog.qml +++ b/resources/qml/DiscardOrKeepProfileChangesDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -14,8 +14,8 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Discard or Keep changes") - width: 800 - height: 400 + width: 800 * screenScaleFactor + height: 400 * screenScaleFactor property var changesModel: Cura.UserChangesModel{ id: userChangesModel} onVisibilityChanged: { diff --git a/resources/qml/EngineLog.qml b/resources/qml/EngineLog.qml index 634f6024cc..965587b59e 100644 --- a/resources/qml/EngineLog.qml +++ b/resources/qml/EngineLog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 296964448b..99196b0c9f 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -16,7 +16,7 @@ Button text: catalog.i18ncp("@label %1 is filled in with the name of an extruder", "Print Selected Model with %1", "Print Selected Models with %1", UM.Selection.selectionCount).arg(extruder.name) style: UM.Theme.styles.tool_button; - iconSource: checked ? UM.Theme.getIcon("material_selected") : UM.Theme.getIcon("material_not_selected"); + iconSource: UM.Theme.getIcon("extruder_button") checked: ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection @@ -36,16 +36,11 @@ Button Item { - anchors - { - right: parent.right; - top: parent.top; - margins: UM.Theme.getSize("default_lining").width * 3 - } + anchors.centerIn: parent width: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("default_margin").height - Text + Label { anchors.centerIn: parent; text: index + 1; @@ -54,22 +49,28 @@ Button } } + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. Rectangle { anchors { - left: parent.left; - top: parent.top; - margins: UM.Theme.getSize("default_lining").width * 3 + right: parent.right + top: parent.top + rightMargin: UM.Theme.getSize("extruder_button_material_margin").width + topMargin: UM.Theme.getSize("extruder_button_material_margin").height } color: model.color - width: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("extruder_button_material").width + height: UM.Theme.getSize("extruder_button_material").height + radius: width / 2 border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining"); + border.color: UM.Theme.getColor("extruder_button_material_border") + + opacity: !base.enabled ? 0.2 : 1.0 } onClicked: diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index fa0ca087b7..c701e5ebf4 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -13,22 +13,10 @@ Item { id: base property bool activity: CuraApplication.platformActivity - property string fileBaseName - property variant activeMachineName: Cura.MachineManager.activeMachineName - - onActiveMachineNameChanged: - { - printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName); - } + property string fileBaseName: "" UM.I18nCatalog { id: catalog; name:"cura"} - property variant printDuration: PrintInformation.currentPrintTime - property variant printDurationPerFeature: PrintInformation.printTimesPerFeature - property variant printMaterialLengths: PrintInformation.materialLengths - property variant printMaterialWeights: PrintInformation.materialWeights - property variant printMaterialCosts: PrintInformation.materialCosts - height: childrenRect.height Connections @@ -36,23 +24,26 @@ Item { target: backgroundItem onHasMesh: { - base.fileBaseName = name + if (base.fileBaseName == "") + { + base.fileBaseName = name; + } } } onActivityChanged: { if (activity == true && base.fileBaseName == ''){ //this only runs when you open a file from the terminal (or something that works the same way; for example when you drag a file on the icon in MacOS or use 'open with' on Windows) - base.fileBaseName = PrintInformation.jobName; //get the fileBaseName from PrintInformation.py because this saves the filebase when the file is opened using the terminal (or something alike) - printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName); + base.fileBaseName = PrintInformation.baseName; //get the fileBaseName from PrintInformation.py because this saves the filebase when the file is opened using the terminal (or something alike) + PrintInformation.setBaseName(base.fileBaseName); } if (activity == true && base.fileBaseName != ''){ //this runs in all other cases where there is a mesh on the buildplate (activity == true). It uses the fileBaseName from the hasMesh signal - printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName); + PrintInformation.setBaseName(base.fileBaseName); } if (activity == false){ //When there is no mesh in the buildplate; the printJobTextField is set to an empty string so it doesn't set an empty string as a jobName (which is later used for saving the file) - printJobTextfield.text = ''; + PrintInformation.setBaseName('') } } @@ -92,7 +83,7 @@ Item { height: UM.Theme.getSize("save_button_specs_icons").height; sourceSize.width: width; sourceSize.height: width; - color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("text"); + color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene"); source: UM.Theme.getIcon("pencil"); } } @@ -103,12 +94,12 @@ Item { { id: printJobTextfield anchors.right: printJobPencilIcon.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width/2 + anchors.rightMargin: Math.floor(UM.Theme.getSize("default_margin").width/2) height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 property int unremovableSpacing: 5 - text: '' + text: PrintInformation.jobName horizontalAlignment: TextInput.AlignRight onTextChanged: { PrintInformation.setJobName(text); @@ -122,7 +113,7 @@ Item { regExp: /^[^\\ \/ \*\?\|\[\]]*$/ } style: TextFieldStyle{ - textColor: UM.Theme.getColor("setting_control_text"); + textColor: UM.Theme.getColor("text_scene"); font: UM.Theme.getFont("default_bold"); background: Rectangle { opacity: 0 @@ -133,7 +124,7 @@ Item { } } - Text + Label { id: boundingSpec anchors.top: jobNameRow.bottom @@ -141,141 +132,7 @@ Item { height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter font: UM.Theme.getFont("small") - color: UM.Theme.getColor("text_subtext") + color: UM.Theme.getColor("text_scene") text: CuraApplication.getSceneBoundingBoxString } - - Rectangle - { - id: specsRow - anchors.top: boundingSpec.bottom - anchors.right: parent.right - height: UM.Theme.getSize("jobspecs_line").height - - Item - { - width: parent.width - height: parent.height - - UM.TooltipArea - { - id: timeSpecPerFeatureTooltipArea - text: { - var order = ["inset_0", "inset_x", "skin", "infill", "support_infill", "support_interface", "support", "travel", "retract", "none"]; - var visible_names = { - "inset_0": catalog.i18nc("@tooltip", "Outer Wall"), - "inset_x": catalog.i18nc("@tooltip", "Inner Walls"), - "skin": catalog.i18nc("@tooltip", "Skin"), - "infill": catalog.i18nc("@tooltip", "Infill"), - "support_infill": catalog.i18nc("@tooltip", "Support Infill"), - "support_interface": catalog.i18nc("@tooltip", "Support Interface"), - "support": catalog.i18nc("@tooltip", "Support"), - "travel": catalog.i18nc("@tooltip", "Travel"), - "retract": catalog.i18nc("@tooltip", "Retractions"), - "none": catalog.i18nc("@tooltip", "Other") - }; - var result = ""; - for(var feature in order) - { - feature = order[feature]; - if(base.printDurationPerFeature[feature] && base.printDurationPerFeature[feature].totalSeconds > 0) - { - result += "
" + visible_names[feature] + ": " + base.printDurationPerFeature[feature].getDisplayString(UM.DurationFormat.Short); - } - } - result = result.replace(/^\/, ""); // remove newline before first item - return result; - } - width: childrenRect.width - height: childrenRect.height - anchors.right: lengthIcon.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.verticalCenter - - UM.RecolorImage - { - id: timeIcon - anchors.left: parent.left - anchors.top: parent.top - anchors.verticalCenter: parent.verticalCenter - width: UM.Theme.getSize("save_button_specs_icons").width - height: UM.Theme.getSize("save_button_specs_icons").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("text_subtext") - source: UM.Theme.getIcon("print_time") - } - - Text - { - id: timeSpec - anchors.left: timeIcon.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2 - anchors.top: parent.top - font: UM.Theme.getFont("small") - color: UM.Theme.getColor("text_subtext") - text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) - } - } - UM.RecolorImage - { - id: lengthIcon - anchors.right: lengthSpec.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width/2 - anchors.verticalCenter: parent.verticalCenter - width: UM.Theme.getSize("save_button_specs_icons").width - height: UM.Theme.getSize("save_button_specs_icons").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("text_subtext") - source: UM.Theme.getIcon("category_material") - } - Text - { - id: lengthSpec - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - font: UM.Theme.getFont("small") - color: UM.Theme.getColor("text_subtext") - text: - { - var lengths = []; - var weights = []; - var costs = []; - var someCostsKnown = false; - if(base.printMaterialLengths) { - for(var index = 0; index < base.printMaterialLengths.length; index++) - { - if(base.printMaterialLengths[index] > 0) - { - lengths.push(base.printMaterialLengths[index].toFixed(2)); - weights.push(String(Math.floor(base.printMaterialWeights[index]))); - var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); - costs.push(cost); - if(cost > 0) - { - someCostsKnown = true; - } - } - } - } - if(lengths.length == 0) - { - lengths = ["0.00"]; - weights = ["0"]; - costs = ["0.00"]; - } - if(someCostsKnown) - { - return catalog.i18nc("@label", "%1 m / ~ %2 g / ~ %4 %3").arg(lengths.join(" + ")) - .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency")); - } - else - { - return catalog.i18nc("@label", "%1 m / ~ %2 g").arg(lengths.join(" + ")).arg(weights.join(" + ")); - } - } - } - } - } } diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml old mode 100755 new mode 100644 index 86e146cb17..39d497722f --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 9127276f3d..d3ecfb69fe 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -14,6 +14,20 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; + } UM.SettingPropertyProvider { @@ -29,22 +43,21 @@ Menu id: automaticMaterial text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter) { var materialName = Cura.MachineManager.printerOutputDevices[0].materialNames[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the automatically selected material", "Automatic: %1").arg(materialName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter onTriggered: { - var material_id = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; + var materialId = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; var items = materialsModel.items; - // materialsModel.find cannot be used because we need to look inside the metadata property of items for(var i in items) { - if (items[i]["metadata"]["GUID"] == material_id) + if (items[i]["metadata"]["GUID"] == materialId) { Cura.MachineManager.setActiveMaterial(items[i].id); break; @@ -64,12 +77,17 @@ Menu MenuItem { text: model.name - checkable: true; - checked: model.id == Cura.MachineManager.activeMaterialId; - exclusiveGroup: group; + checkable: true + checked: model.id == Cura.MachineManager.allActiveMaterialIds[ExtruderManager.extruderIds[extruderIndex]] + exclusiveGroup: group onTriggered: { + // This workaround is done because of the application menus for materials and variants for multiextrusion printers. + // The extruder menu would always act on the correspoding extruder only, instead of acting on the extruder selected in the UI. + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); Cura.MachineManager.setActiveMaterial(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } onObjectAdded: menu.insertItem(index, object) @@ -102,12 +120,17 @@ Menu MenuItem { text: model.name - checkable: true; - checked: model.id == Cura.MachineManager.activeMaterialId; - exclusiveGroup: group; + checkable: true + checked: model.id == Cura.MachineManager.allActiveMaterialIds[ExtruderManager.extruderIds[extruderIndex]] + exclusiveGroup: group onTriggered: { + // This workaround is done because of the application menus for materials and variants for multiextrusion printers. + // The extruder menu would always act on the correspoding extruder only, instead of acting on the extruder selected in the UI. + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); Cura.MachineManager.setActiveMaterial(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } onObjectAdded: brandMaterialsMenu.insertItem(index, object) diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index a9fffc84ab..e9f2df1f38 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -14,28 +14,45 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; + } MenuItem { id: automaticNozzle text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter) { var nozzleName = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the nozzle currently loaded in the printer", "Automatic: %1").arg(nozzleName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter onTriggered: { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); var hotendId = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; var itemIndex = nozzleInstantiator.model.find("name", hotendId); if(itemIndex > -1) { - Cura.MachineManager.setActiveVariant(nozzleInstantiator.model.getItem(itemIndex).id) + Cura.MachineManager.setActiveVariant(nozzleInstantiator.model.getItem(itemIndex).id); } + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } @@ -56,11 +73,17 @@ Menu } } MenuItem { - text: model.name; - checkable: true; - checked: model.id == Cura.MachineManager.activeVariantId; + text: model.name + checkable: true + checked: model.id == Cura.MachineManager.allActiveVariantIds[ExtruderManager.extruderIds[extruderIndex]] exclusiveGroup: group - onTriggered: Cura.MachineManager.setActiveVariant(model.id) + onTriggered: + { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); + Cura.MachineManager.setActiveVariant(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); + } } onObjectAdded: menu.insertItem(index, object) onObjectRemoved: menu.removeItem(object) diff --git a/resources/qml/Menus/PrinterMenu.qml b/resources/qml/Menus/PrinterMenu.qml index 408e8bd585..073723a60d 100644 --- a/resources/qml/Menus/PrinterMenu.qml +++ b/resources/qml/Menus/PrinterMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 4a2908277e..fecea5ef99 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -17,11 +17,12 @@ Menu MenuItem { - text: model.name + " - " + model.layer_height + text: (model.layer_height != "") ? model.name + " - " + model.layer_height : model.name checkable: true - checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type + checked: Cura.MachineManager.activeQualityId == model.id exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) + visible: model.available } onObjectAdded: menu.insertItem(index, object); @@ -42,7 +43,7 @@ Menu { text: model.name + " - " + model.layer_height checkable: true - checked: Cura.MachineManager.globalQualityId == model.id + checked: Cura.MachineManager.activeQualityChangesId == model.id exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) } diff --git a/resources/qml/Menus/RecentFilesMenu.qml b/resources/qml/Menus/RecentFilesMenu.qml index e00a32768d..579eb24344 100644 --- a/resources/qml/Menus/RecentFilesMenu.qml +++ b/resources/qml/Menus/RecentFilesMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 859620692e..bb5999edb9 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -27,4 +27,7 @@ Menu onObjectRemoved: menu.removeItem(object) } ExclusiveGroup { id: group; } + + MenuSeparator {} + MenuItem { action: Cura.Actions.homeCamera; } } diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 8fe6438b87..29b00f50e6 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -81,7 +81,6 @@ Item } property bool activity: CuraApplication.platformActivity; - property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height property string fileBaseName property string statusText: { @@ -120,10 +119,10 @@ Item Label { id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("default_margin").width + width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width anchors.top: parent.top anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width color: base.statusColor font: UM.Theme.getFont("large") @@ -178,21 +177,21 @@ Item property string backgroundColor: UM.Theme.getColor("progressbar_background"); property string controlColor: base.statusColor; - width: parent.width - 2 * UM.Theme.getSize("default_margin").width; + width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width; height: UM.Theme.getSize("progressbar").height; anchors.top: statusLabel.bottom; - anchors.topMargin: UM.Theme.getSize("default_margin").height / 4; + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height / 4; anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_margin").width; + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width; } Row { id: buttonsRow height: abortButton.height anchors.top: progressBar.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width spacing: UM.Theme.getSize("default_margin").width Row { @@ -221,7 +220,7 @@ Item property bool userClicked: false property string lastJobState: "" - visible: printerConnected + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canPause enabled: (!userClicked) && printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) @@ -262,7 +261,7 @@ Item { id: abortButton - visible: printerConnected + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canAbort enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing", "pre_print"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) diff --git a/resources/qml/OpenFilesIncludingProjectsDialog.qml b/resources/qml/OpenFilesIncludingProjectsDialog.qml index 3c7275a2a4..af8fb9e05f 100644 --- a/resources/qml/OpenFilesIncludingProjectsDialog.qml +++ b/resources/qml/OpenFilesIncludingProjectsDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -17,8 +17,8 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Open file(s)") - width: 420 - height: 170 + width: 420 * screenScaleFactor + height: 170 * screenScaleFactor maximumHeight: height maximumWidth: width @@ -28,7 +28,7 @@ UM.Dialog modality: UM.Application.platform == "linux" ? Qt.NonModal : Qt.WindowModal; property var fileUrls: [] - property int spacerHeight: 10 + property int spacerHeight: 10 * screenScaleFactor function loadProjectFile(projectFile) { @@ -52,12 +52,12 @@ UM.Dialog Column { anchors.fill: parent - anchors.leftMargin: 20 - anchors.rightMargin: 20 - anchors.bottomMargin: 20 + anchors.leftMargin: 20 * screenScaleFactor + anchors.rightMargin: 20 * screenScaleFactor + anchors.bottomMargin: 20 * screenScaleFactor anchors.left: parent.left anchors.right: parent.right - spacing: 10 + spacing: 10 * screenScaleFactor Label { diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml old mode 100755 new mode 100644 index 7c4ad16e10..ad6c2ce050 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -148,19 +148,26 @@ UM.PreferencesPage id: languageList Component.onCompleted: { - append({ text: "English", code: "en" }) - append({ text: "Deutsch", code: "de" }) - append({ text: "Español", code: "es" }) - append({ text: "Suomi", code: "fi" }) - append({ text: "Français", code: "fr" }) - append({ text: "Italiano", code: "it" }) - append({ text: "日本語", code: "jp" }) - append({ text: "한국어", code: "ko" }) - append({ text: "Nederlands", code: "nl" }) - append({ text: "Polski", code: "pl" }) - append({ text: "Português do Brasil", code: "ptbr" }) - append({ text: "Русский", code: "ru" }) - append({ text: "Türkçe", code: "tr" }) + append({ text: "English", code: "en_US" }) + append({ text: "Deutsch", code: "de_DE" }) + append({ text: "Español", code: "es_ES" }) + append({ text: "Suomi", code: "fi_FI" }) + append({ text: "Français", code: "fr_FR" }) + append({ text: "Italiano", code: "it_IT" }) + append({ text: "日本語", code: "ja_JP" }) + append({ text: "한국어", code: "ko_KR" }) + append({ text: "Nederlands", code: "nl_NL" }) + append({ text: "Polski", code: "pl_PL" }) + append({ text: "Português do Brasil", code: "pt_BR" }) + append({ text: "Русский", code: "ru_RU" }) + append({ text: "Türkçe", code: "tr_TR" }) + append({ text: "简体中文", code: "zh_CN" }) + + var date_object = new Date(); + if (date_object.getUTCMonth() == 8 && date_object.getUTCDate() == 19) //Only add Pirate on the 19th of September. + { + append({ text: "Pirate", code: "en_7S" }) + } } } @@ -506,7 +513,7 @@ UM.PreferencesPage Column { - spacing: 4 + spacing: 4 * screenScaleFactor Label { @@ -516,7 +523,7 @@ UM.PreferencesPage ComboBox { id: choiceOnOpenProjectDropDownButton - width: 200 + width: 200 * screenScaleFactor model: ListModel { @@ -565,7 +572,7 @@ UM.PreferencesPage Column { - spacing: 4 + spacing: 4 * screenScaleFactor Label { @@ -576,7 +583,7 @@ UM.PreferencesPage ComboBox { id: choiceOnProfileOverrideDropDownButton - width: 200 + width: 200 * screenScaleFactor model: ListModel { diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 4a62027f66..dc978c0f7a 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -91,7 +91,7 @@ UM.ManagementPage Item { - width: childrenRect.width + 2 + width: childrenRect.width + 2 * screenScaleFactor height: childrenRect.height Button { @@ -112,8 +112,6 @@ UM.ManagementPage { id: actionDialog property var content - minimumWidth: 350 - minimumHeight: 350 onContentChanged: { contents = content; @@ -257,8 +255,8 @@ UM.ManagementPage UM.RenameDialog { id: renameDialog; - width: 300 - height: 150 + width: 300 * screenScaleFactor + height: 150 * screenScaleFactor object: base.currentItem && base.currentItem.name ? base.currentItem.name : ""; property var machine_name_validator: Cura.MachineNameValidator { } validName: renameDialog.newName.match(renameDialog.machine_name_validator.machineNameRegex) != null; diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 776c4c303e..143f29c86e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.3 @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: (width * 0.45) | 0 - property real secondColumnWidth: (width * 0.45) | 0 + property real firstColumnWidth: (width * 0.50) | 0 + property real secondColumnWidth: (width * 0.40) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} @@ -108,15 +108,15 @@ TabView { width: scrollView.columnWidth; height: parent.rowHeight; - spacing: UM.Theme.getSize("default_margin").width/2 + spacing: Math.floor(UM.Theme.getSize("default_margin").width/2) Rectangle { id: colorSelector color: properties.color_code - width: (colorLabel.height * 0.75) | 0 - height: (colorLabel.height * 0.75) | 0 + width: Math.floor(colorLabel.height * 0.75) + height: Math.floor(colorLabel.height * 0.75) border.width: UM.Theme.getSize("default_lining").height anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 0f51c121fe..5e014faf24 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -1,5 +1,5 @@ //Copyright (c) 2017 Ultimaker B.V. -//Cura is released under the terms of the AGPLv3 or higher. +//Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -67,7 +67,7 @@ UM.ManagementPage } Label { - width: (parent.width * 0.3) | 0 + width: Math.floor((parent.width * 0.3)) text: model.metadata.material elide: Text.ElideRight font.italic: model.id == activeId @@ -317,11 +317,11 @@ UM.ManagementPage var result = Cura.ContainerManager.importContainer(fileUrl) messageDialog.title = catalog.i18nc("@title:window", "Import Material") - messageDialog.text = catalog.i18nc("@info:status", "Could not import material %1: %2").arg(fileUrl).arg(result.message) + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags or !", "Could not import material %1: %2").arg(fileUrl).arg(result.message) if(result.status == "success") { messageDialog.icon = StandardIcon.Information - messageDialog.text = catalog.i18nc("@info:status", "Successfully imported material %1").arg(fileUrl) + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully imported material %1").arg(fileUrl) currentItem = base.model.getItem(base.objectList.currentIndex) } else if(result.status == "duplicate") @@ -359,13 +359,13 @@ UM.ManagementPage if(result.status == "error") { messageDialog.icon = StandardIcon.Critical - messageDialog.text = catalog.i18nc("@info:status", "Failed to export material to %1: %2").arg(fileUrl).arg(result.message) + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags and !", "Failed to export material to %1: %2").arg(fileUrl).arg(result.message) messageDialog.open() } else if(result.status == "success") { messageDialog.icon = StandardIcon.Information - messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to %1").arg(result.path) + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully exported material to %1").arg(result.path) messageDialog.open() } CuraApplication.setDefaultPath("dialog_material_path", folder) diff --git a/resources/qml/Preferences/ProfileTab.qml b/resources/qml/Preferences/ProfileTab.qml index 8c56892c1d..acebea3500 100644 --- a/resources/qml/Preferences/ProfileTab.qml +++ b/resources/qml/Preferences/ProfileTab.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index 521145f872..c7b6b3e933 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/Preferences/ReadOnlySpinBox.qml b/resources/qml/Preferences/ReadOnlySpinBox.qml index 90314ac323..5d0666d306 100644 --- a/resources/qml/Preferences/ReadOnlySpinBox.qml +++ b/resources/qml/Preferences/ReadOnlySpinBox.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/Preferences/ReadOnlyTextArea.qml b/resources/qml/Preferences/ReadOnlyTextArea.qml index db92c7d2b0..2c553ac2ca 100644 --- a/resources/qml/Preferences/ReadOnlyTextArea.qml +++ b/resources/qml/Preferences/ReadOnlyTextArea.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/Preferences/ReadOnlyTextField.qml b/resources/qml/Preferences/ReadOnlyTextField.qml index a34c39cde3..9407475a9b 100644 --- a/resources/qml/Preferences/ReadOnlyTextField.qml +++ b/resources/qml/Preferences/ReadOnlyTextField.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. // Different than the name suggests, it is not always read-only. import QtQuick 2.1 diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 4302fb42a8..5198ab1030 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 41e8794014..ce169ba714 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -24,20 +24,20 @@ Column { id: connectedPrinterHeader width: parent.width - height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 + height: Math.floor(childrenRect.height + UM.Theme.getSize("default_margin").height * 2) color: UM.Theme.getColor("setting_category") - Text + Label { id: connectedPrinterNameLabel - text: connectedPrinter != null ? connectedPrinter.name : catalog.i18nc("@info:status", "No printer connected") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") anchors.left: parent.left anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width + text: connectedPrinter != null ? connectedPrinter.name : catalog.i18nc("@info:status", "No printer connected") } - Text + Label { id: connectedPrinterAddressLabel text: (connectedPrinter != null && connectedPrinter.address != null) ? connectedPrinter.address : "" @@ -47,7 +47,7 @@ Column anchors.right: parent.right anchors.margins: UM.Theme.getSize("default_margin").width } - Text + Label { text: connectedPrinter != null ? connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.") color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -82,25 +82,58 @@ Column { id: extruderRectangle color: UM.Theme.getColor("sidebar") - width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2 + width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.floor(extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2) height: UM.Theme.getSize("sidebar_extruder_box").height - Text //Extruder name. + Label //Extruder name. { - text: ExtruderManager.getExtruderName(index) != "" ? ExtruderManager.getExtruderName(index) : catalog.i18nc("@label", "Hotend") + text: ExtruderManager.getExtruderName(index) != "" ? ExtruderManager.getExtruderName(index) : catalog.i18nc("@label", "Extruder") color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") anchors.left: parent.left anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width } - Text //Temperature indication. + + Label //Target temperature. + { + id: extruderTargetTemperature + text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null && connectedPrinter.targetHotendTemperatures[index] != null) ? Math.round(connectedPrinter.targetHotendTemperatures[index]) + "°C" : "" + font: UM.Theme.getFont("small") + color: UM.Theme.getColor("text_inactive") + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.bottom: extruderTemperature.bottom + + MouseArea //For tooltip. + { + id: extruderTargetTemperatureTooltipArea + hoverEnabled: true + anchors.fill: parent + onHoveredChanged: + { + if (containsMouse) + { + base.showTooltip( + base, + {x: 0, y: extruderTargetTemperature.mapToItem(base, 0, -parent.height / 4).y}, + catalog.i18nc("@tooltip", "The target temperature of the hotend. The hotend will heat up or cool down towards this temperature. If this is 0, the hotend heating is turned off.") + ); + } + else + { + base.hideTooltip(); + } + } + } + } + Label //Temperature indication. { id: extruderTemperature text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null && connectedPrinter.hotendTemperatures[index] != null) ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : "" color: UM.Theme.getColor("text") font: UM.Theme.getFont("large") - anchors.right: parent.right + anchors.right: extruderTargetTemperature.left anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width @@ -129,8 +162,9 @@ Column Rectangle //Material colour indication. { id: materialColor - width: materialName.height * 0.75 - height: materialName.height * 0.75 + width: Math.floor(materialName.height * 0.75) + height: Math.floor(materialName.height * 0.75) + radius: width / 2 color: (connectedPrinter != null && connectedPrinter.materialColors[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialColors[index] : "#00000000" border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") @@ -161,7 +195,7 @@ Column } } } - Text //Material name. + Label //Material name. { id: materialName text: (connectedPrinter != null && connectedPrinter.materialNames[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialNames[index] : "" @@ -193,7 +227,7 @@ Column } } } - Text //Variant name. + Label //Variant name. { id: variantName text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null) ? connectedPrinter.hotendIds[index] : "" @@ -244,7 +278,7 @@ Column height: machineHeatedBed.properties.value == "True" ? UM.Theme.getSize("sidebar_extruder_box").height : 0 visible: machineHeatedBed.properties.value == "True" - Text //Build plate label. + Label //Build plate label. { text: catalog.i18nc("@label", "Build plate") font: UM.Theme.getFont("default") @@ -253,7 +287,7 @@ Column anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width } - Text //Target temperature. + Label //Target temperature. { id: bedTargetTemperature text: connectedPrinter != null ? connectedPrinter.targetBedTemperature + "°C" : "" @@ -285,7 +319,7 @@ Column } } } - Text //Current temperature. + Label //Current temperature. { id: bedCurrentTemperature text: connectedPrinter != null ? connectedPrinter.bedTemperature + "°C" : "" @@ -320,10 +354,10 @@ Column Rectangle //Input field for pre-heat temperature. { id: preheatTemperatureControl - color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error") : UM.Theme.getColor("setting_validation_ok") + color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error_background") : UM.Theme.getColor("setting_validation_ok") property var showError: { - if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < parseInt(preheatTemperatureInput.text)) + if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < Math.floor(preheatTemperatureInput.text)) { return true; } else @@ -355,7 +389,7 @@ Column anchors.bottomMargin: UM.Theme.getSize("default_margin").height width: UM.Theme.getSize("setting_control").width height: UM.Theme.getSize("setting_control").height - + visible: connectedPrinter != null ? connectedPrinter.canPreHeatBed: true Rectangle //Highlight of input field. { anchors.fill: parent @@ -363,7 +397,7 @@ Column color: UM.Theme.getColor("setting_control_highlight") opacity: preheatTemperatureControl.hovered ? 1.0 : 0 } - Text //Maximum temperature indication. + Label //Maximum temperature indication. { text: (bedTemperature.properties.maximum_value != "None" ? bedTemperature.properties.maximum_value : "") + "°C" color: UM.Theme.getColor("setting_unit") @@ -408,9 +442,14 @@ Column anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter + renderType: Text.NativeRendering Component.onCompleted: { + if (!bedTemperature.properties.value) + { + text = ""; + } if ((bedTemperature.resolve != "None" && bedTemperature.resolve) && (bedTemperature.stackLevels[0] != 0) && (bedTemperature.stackLevels[0] != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that @@ -437,7 +476,7 @@ Column visible: preheatCountdown.visible source: UM.Theme.getIcon("print_time") anchors.right: preheatCountdown.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 + anchors.rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) anchors.verticalCenter: preheatCountdown.verticalCenter } @@ -462,7 +501,7 @@ Column } } } - Text + Label { id: preheatCountdown text: connectedPrinter != null ? connectedPrinter.preheatBedRemainingTime : "" @@ -478,6 +517,7 @@ Column { id: preheatButton height: UM.Theme.getSize("setting_control").height + visible: connectedPrinter != null ? connectedPrinter.canPreHeatBed: true enabled: { if (!preheatTemperatureControl.enabled) @@ -488,15 +528,15 @@ Column { return true; //Can always cancel if the timer is running. } - if (bedTemperature.properties.minimum_value != "None" && parseInt(preheatTemperatureInput.text) < parseInt(bedTemperature.properties.minimum_value)) + if (bedTemperature.properties.minimum_value != "None" && Math.floor(preheatTemperatureInput.text) < Math.floor(bedTemperature.properties.minimum_value)) { return false; //Target temperature too low. } - if (bedTemperature.properties.maximum_value != "None" && parseInt(preheatTemperatureInput.text) > parseInt(bedTemperature.properties.maximum_value)) + if (bedTemperature.properties.maximum_value != "None" && Math.floor(preheatTemperatureInput.text) > Math.floor(bedTemperature.properties.maximum_value)) { return false; //Target temperature too high. } - if (parseInt(preheatTemperatureInput.text) == 0) + if (Math.floor(preheatTemperatureInput.text) == 0) { return false; //Setting the temperature to 0 is not allowed (since that cancels the pre-heating). } @@ -556,7 +596,7 @@ Column } } - Text + Label { id: actualLabel anchors.centerIn: parent @@ -637,6 +677,341 @@ Column watchedProperties: ["value"] } + Column + { + visible: connectedPrinter != null ? connectedPrinter.canControlManually : false + enabled: + { + if (connectedPrinter == null) + { + return false; //Can't control the printer if not connected. + } + if (!connectedPrinter.acceptsCommands) + { + return false; //Not allowed to do anything. + } + if (connectedPrinter.jobState == "printing" || connectedPrinter.jobState == "resuming" || connectedPrinter.jobState == "pausing" || connectedPrinter.jobState == "error" || connectedPrinter.jobState == "offline") + { + return false; //Printer is in a state where it can't react to manual control + } + return true; + } + + Loader + { + sourceComponent: monitorSection + property string label: catalog.i18nc("@label", "Printer control") + } + + Row + { + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + Label + { + text: catalog.i18nc("@label", "Jog Position") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter + } + + GridLayout + { + columns: 3 + rows: 4 + rowSpacing: UM.Theme.getSize("default_lining").width + columnSpacing: UM.Theme.getSize("default_lining").height + + Label + { + text: catalog.i18nc("@label", "X/Y") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: height + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + + Layout.row: 1 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + } + + Button + { + Layout.row: 2 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, distancesRow.currentDistance, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 1 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_left"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 3 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_right"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0) + } + } + + Button + { + Layout.row: 4 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeHead() + } + } + } + + + Column + { + spacing: UM.Theme.getSize("default_lining").height + + Label + { + text: catalog.i18nc("@label", "Z") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: UM.Theme.getSize("section").height + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, distancesRow.currentDistance) + } + } + + Button + { + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeBed() + } + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance) + } + } + } + } + + Row + { + id: distancesRow + + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + property real currentDistance: 10 + + Label + { + text: catalog.i18nc("@label", "Jog Distance") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter + } + + Row + { + Repeater + { + model: distancesModel + delegate: Button + { + height: UM.Theme.getSize("setting_control").height + width: height + UM.Theme.getSize("default_margin").width + + text: model.label + exclusiveGroup: distanceGroup + checkable: true + checked: distancesRow.currentDistance == model.value + onClicked: distancesRow.currentDistance = model.value + + style: ButtonStyle { + background: Rectangle { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } + Behavior on color { ColorAnimation { duration: 50; } } + Label { + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + font: UM.Theme.getFont("default") + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle + } + } + label: Item { } + } + } + } + } + } + + ListModel + { + id: distancesModel + ListElement { label: "0.1"; value: 0.1 } + ListElement { label: "1"; value: 1 } + ListElement { label: "10"; value: 10 } + ListElement { label: "100"; value: 100 } + } + ExclusiveGroup { id: distanceGroup } + } + + Loader { sourceComponent: monitorSection @@ -669,22 +1044,22 @@ Column Row { height: UM.Theme.getSize("setting_control").height - width: base.width - 2 * UM.Theme.getSize("default_margin").width + width: Math.floor(base.width - 2 * UM.Theme.getSize("default_margin").width) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width - Text + Label { - width: parent.width * 0.4 + width: Math.floor(parent.width * 0.4) anchors.verticalCenter: parent.verticalCenter text: label color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") elide: Text.ElideRight } - Text + Label { - width: parent.width * 0.6 + width: Math.floor(parent.width * 0.6) anchors.verticalCenter: parent.verticalCenter text: value color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -703,7 +1078,7 @@ Column width: base.width height: UM.Theme.getSize("section").height - Text + Label { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left @@ -714,4 +1089,86 @@ Column } } } + + Component + { + id: monitorButtonStyle + + ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } + Behavior on color + { + ColorAnimation + { + duration: 50 + } + } + } + + label: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: Math.floor(control.width / 2) + height: Math.floor(control.height / 2) + sourceSize.width: width + sourceSize.height: width + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + source: control.iconSource + } + } + } + } } \ No newline at end of file diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 2ea7dafc91..e2890a6b49 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -18,7 +18,8 @@ Item { property var backend: CuraApplication.getBackend(); property bool activity: CuraApplication.platformActivity; - property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height + property alias buttonRowWidth: saveRow.width + property string fileBaseName property string statusText: { @@ -44,26 +45,26 @@ Item { } } - Text { + Label { id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("default_margin").width + width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width anchors.top: parent.top anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width color: UM.Theme.getColor("text") - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("default_bold") text: statusText; } Rectangle { id: progressBar - width: parent.width - 2 * UM.Theme.getSize("default_margin").width + width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("progressbar").height anchors.top: statusLabel.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height/4 + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height/4 anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width radius: UM.Theme.getSize("progressbar_radius").width color: UM.Theme.getColor("progressbar_background") @@ -90,11 +91,24 @@ Item { Item { id: saveRow - width: base.width + width: { + // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect + var children_width = UM.Theme.getSize("default_margin").width; + for (var index in children) + { + var child = children[index]; + if(child.visible) + { + children_width += child.width + child.anchors.rightMargin; + } + } + return Math.min(children_width, base.width - UM.Theme.getSize("sidebar_margin").width); + } height: saveToButton.height - anchors.top: progressBar.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + anchors.right: parent.right + clip: true Row { id: additionalComponentsRow @@ -142,7 +156,7 @@ Item { anchors.top: parent.top anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width // 1 = not started, 5 = disabled text: [1, 5].indexOf(UM.Backend.state) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel") @@ -184,7 +198,7 @@ Item { Behavior on color { ColorAnimation { duration: 50; } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) Label { id: actualLabel @@ -222,7 +236,7 @@ Item { anchors.top: parent.top anchors.right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right - anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("default_margin").width + anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("sidebar_margin").width text: UM.OutputDeviceManager.activeDeviceShortDescription onClicked: @@ -239,27 +253,27 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_border"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_border"); + return UM.Theme.getColor("print_button_ready_pressed_border"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_border"); + return UM.Theme.getColor("print_button_ready_hovered_border"); else - return UM.Theme.getColor("action_button_border"); + return UM.Theme.getColor("print_button_ready_border"); } color: { if(!control.enabled) return UM.Theme.getColor("action_button_disabled"); else if(control.pressed) - return UM.Theme.getColor("action_button_active"); + return UM.Theme.getColor("print_button_ready_pressed"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered"); + return UM.Theme.getColor("print_button_ready_hovered"); else - return UM.Theme.getColor("action_button"); + return UM.Theme.getColor("print_button_ready"); } Behavior on color { ColorAnimation { duration: 50; } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) Label { id: actualLabel @@ -269,11 +283,11 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_text"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_text"); + return UM.Theme.getColor("print_button_ready_text"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_text"); + return UM.Theme.getColor("print_button_ready_text"); else - return UM.Theme.getColor("action_button_text"); + return UM.Theme.getColor("print_button_ready_text"); } font: UM.Theme.getFont("action_button") text: control.text; @@ -289,7 +303,7 @@ Item { anchors.top: parent.top anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width width: UM.Theme.getSize("save_button_save_to_button").height height: UM.Theme.getSize("save_button_save_to_button").height // 3 = Done, 5 = Disabled @@ -306,22 +320,22 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_border"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_border"); + return UM.Theme.getColor("print_button_ready_pressed_border"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_border"); + return UM.Theme.getColor("print_button_ready_hovered_border"); else - return UM.Theme.getColor("action_button_border"); + return UM.Theme.getColor("print_button_ready_border"); } color: { if(!control.enabled) return UM.Theme.getColor("action_button_disabled"); else if(control.pressed) - return UM.Theme.getColor("action_button_active"); + return UM.Theme.getColor("print_button_ready_pressed"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered"); + return UM.Theme.getColor("print_button_ready_hovered"); else - return UM.Theme.getColor("action_button"); + return UM.Theme.getColor("print_button_ready"); } Behavior on color { ColorAnimation { duration: 50; } } anchors.left: parent.left @@ -341,11 +355,11 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_text"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_text"); + return UM.Theme.getColor("print_button_ready_text"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_text"); + return UM.Theme.getColor("print_button_ready_text"); else - return UM.Theme.getColor("action_button_text"); + return UM.Theme.getColor("print_button_ready_text"); } source: UM.Theme.getIcon("arrow_bottom"); } diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index e8c0983398..53f8f89e15 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 4ef7f59a77..9029249249 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Layouts 1.1 @@ -119,8 +119,8 @@ SettingItem UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - width: parent.width/2.5 - height: parent.height/2.5 + width: parent.width / 2.5 + height: parent.height / 2.5 sourceSize.width: width sourceSize.height: width color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text"); diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index c29ac123d6..f2ec5fda65 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -86,8 +86,8 @@ SettingItem source: UM.Theme.getIcon("arrow_bottom") width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 - sourceSize.height: width + 5 + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor color: UM.Theme.getColor("setting_control_text"); diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 15496eaa8b..ca99640f6d 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -97,36 +97,36 @@ SettingItem } label: Item { + Label + { + id: extruderText + anchors.verticalCenter: parent.verticalCenter + + text: control.currentText + font: UM.Theme.getFont("default") + color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + + elide: Text.ElideLeft + verticalAlignment: Text.AlignVCenter + } Rectangle { id: swatch height: UM.Theme.getSize("setting_control").height / 2 width: height - anchors.verticalCenter: parent.verticalCenter - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - - color: control.color - } - Label - { anchors { - left: swatch.right; - right: arrow.left; + right: arrow.left verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_lining").width + margins: UM.Theme.getSize("default_margin").width / 4 } - width: parent.width - swatch.width; - text: control.currentText - font: UM.Theme.getFont("default") - color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.color } UM.RecolorImage { @@ -137,8 +137,8 @@ SettingItem source: UM.Theme.getIcon("arrow_bottom") width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 - sourceSize.height: width + 5 + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor color: UM.Theme.getColor("setting_control_text") } diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 112edb5049..2bf2c17273 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Layouts 1.1 @@ -130,11 +130,11 @@ Item { id: settingControls height: parent.height / 2 - spacing: UM.Theme.getSize("default_margin").width / 2 + spacing: UM.Theme.getSize("sidebar_margin").height / 2 anchors { right: controlContainer.left - rightMargin: UM.Theme.getSize("default_margin").width / 2 + rightMargin: UM.Theme.getSize("sidebar_margin").width / 2 verticalCenter: parent.verticalCenter } @@ -142,7 +142,7 @@ Item { { id: linkedSettingIcon; - visible: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId && (!definition.settable_per_extruder || globalPropertyProvider.properties.limit_to_extruder != "-1") && base.showLinkedSettingIcon + visible: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId && (!definition.settable_per_extruder || String(globalPropertyProvider.properties.limit_to_extruder) != "-1") && base.showLinkedSettingIcon height: parent.height; width: height; @@ -222,7 +222,7 @@ Item { } // If the setting does not have a limit_to_extruder property (or is -1), use the active stack. - if(globalPropertyProvider.properties.limit_to_extruder == null || globalPropertyProvider.properties.limit_to_extruder == -1) + if(globalPropertyProvider.properties.limit_to_extruder == null || String(globalPropertyProvider.properties.limit_to_extruder) == "-1") { return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0; } @@ -232,7 +232,7 @@ Item { // Observed when loading workspace, probably when SettingItems are removed. return false; } - return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, globalPropertyProvider.properties.limit_to_extruder).indexOf(definition.key) >= 0; + return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0; } height: parent.height; @@ -293,7 +293,7 @@ Item { enabled: propertyProvider.isValueUsed anchors.right: parent.right; - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: parent.verticalCenter; width: UM.Theme.getSize("setting_control").width; height: UM.Theme.getSize("setting_control").height diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 0fd36564a1..1c286fcd2d 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -116,29 +116,10 @@ SettingItem } label: Item { - Rectangle - { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height - - anchors.verticalCenter: parent.verticalCenter - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - - color: control.color - } Label { - anchors - { - left: swatch.right; - right: arrow.left; - verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_lining").width - } - width: parent.width - swatch.width; + anchors.verticalCenter: parent.verticalCenter + width: parent.width - swatch.width - arrow.width; text: control.currentText font: UM.Theme.getFont("default") @@ -147,6 +128,25 @@ SettingItem elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } + Rectangle + { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height + + anchors + { + right: arrow.left; + verticalCenter: parent.verticalCenter + margins: UM.Theme.getSize("default_margin").width / 4 + } + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 + + color: control.color + } UM.RecolorImage { id: arrow @@ -156,8 +156,8 @@ SettingItem source: UM.Theme.getIcon("arrow_bottom") width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 - sourceSize.height: width + 5 + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor color: UM.Theme.getColor("setting_control_text") } diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 2991c24d57..cdc0588940 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.2 @@ -11,6 +11,14 @@ SettingItem id: base property var focusItem: input + property string textBeforeEdit + property bool textHasChanged + onFocusReceived: + { + textHasChanged = false; + textBeforeEdit = focusItem.text; + } + contents: Rectangle { id: control @@ -24,6 +32,17 @@ SettingItem { return UM.Theme.getColor("setting_control_disabled_border") } + switch(propertyProvider.properties.validationState) + { + case "ValidatorState.Exception": + case "ValidatorState.MinimumError": + case "ValidatorState.MaximumError": + return UM.Theme.getColor("setting_validation_error"); + case "ValidatorState.MinimumWarning": + case "ValidatorState.MaximumWarning": + return UM.Theme.getColor("setting_validation_warning"); + } + //Validation is OK. if(hovered || input.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") @@ -39,15 +58,12 @@ SettingItem switch(propertyProvider.properties.validationState) { case "ValidatorState.Exception": - return UM.Theme.getColor("setting_validation_error") case "ValidatorState.MinimumError": - return UM.Theme.getColor("setting_validation_error") case "ValidatorState.MaximumError": - return UM.Theme.getColor("setting_validation_error") + return UM.Theme.getColor("setting_validation_error_background") case "ValidatorState.MinimumWarning": - return UM.Theme.getColor("setting_validation_warning") case "ValidatorState.MaximumWarning": - return UM.Theme.getColor("setting_validation_warning") + return UM.Theme.getColor("setting_validation_warning_background") case "ValidatorState.Valid": return UM.Theme.getColor("setting_validation_ok") @@ -94,6 +110,7 @@ SettingItem right: parent.right verticalCenter: parent.verticalCenter } + renderType: Text.NativeRendering Keys.onTabPressed: { @@ -106,12 +123,22 @@ SettingItem Keys.onReleased: { - propertyProvider.setPropertyValue("value", text) + if (text != textBeforeEdit) + { + textHasChanged = true; + } + if (textHasChanged) + { + propertyProvider.setPropertyValue("value", text) + } } onEditingFinished: { - propertyProvider.setPropertyValue("value", text) + if (textHasChanged) + { + propertyProvider.setPropertyValue("value", text) + } } onActiveFocusChanged: diff --git a/resources/qml/Settings/SettingUnknown.qml b/resources/qml/Settings/SettingUnknown.qml index 55e26b6695..f4dadf8d75 100644 --- a/resources/qml/Settings/SettingUnknown.qml +++ b/resources/qml/Settings/SettingUnknown.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 485d364b2d..c116fa933a 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -9,6 +9,8 @@ import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura +import "../Menus" + Item { id: base; @@ -18,6 +20,95 @@ Item signal showTooltip(Item item, point location, string text); signal hideTooltip(); + Item + { + id: globalProfileRow + height: UM.Theme.getSize("sidebar_setup").height + visible: !sidebar.monitoringPrint && !sidebar.hideSettings + + anchors + { + top: parent.top + left: parent.left + leftMargin: UM.Theme.getSize("sidebar_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: globalProfileLabel + text: catalog.i18nc("@label","Profile:"); + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2) + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + verticalAlignment: Text.AlignVCenter + anchors.top: parent.top + anchors.bottom: parent.bottom + } + + ToolButton + { + id: globalProfileSelection + + text: generateActiveQualityText() + enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 + width: Math.floor(parent.width * 0.55) + height: UM.Theme.getSize("setting_control").height + anchors.left: globalProfileLabel.right + anchors.right: parent.right + tooltip: Cura.MachineManager.activeQualityName + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true + menu: ProfileMenu { } + + function generateActiveQualityText () { + var result = catalog.i18nc("@", "No Profile Available") // default text + + if (Cura.MachineManager.isActiveQualitySupported ) { + result = Cura.MachineManager.activeQualityName + + if (Cura.MachineManager.activeQualityLayerHeight > 0) { + result += " " + result += " - " + result += Cura.MachineManager.activeQualityLayerHeight + "mm" + result += "" + } + } + + return result + } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.MachineManager.hasUserSettings + height: Math.floor(parent.height * 0.6) + width: Math.floor(parent.height * 0.6) + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("sidebar_margin").width + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("star"); + + onClicked: + { + forceActiveFocus(); + Cura.Actions.manageProfiles.trigger() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") + base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content) + } + onExited: base.hideTooltip() + } + } + } + Rectangle { id: filterContainer @@ -40,11 +131,12 @@ Item anchors { - top: parent.top + top: globalProfileRow.bottom + topMargin: UM.Theme.getSize("sidebar_margin").height left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width + leftMargin: UM.Theme.getSize("sidebar_margin").width right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width + rightMargin: UM.Theme.getSize("sidebar_margin").width } height: visible ? UM.Theme.getSize("setting_control").height : 0 Behavior on height { NumberAnimation { duration: 100 } } @@ -55,13 +147,14 @@ Item anchors.left: parent.left anchors.right: clearFilterButton.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width placeholderText: catalog.i18nc("@label:textbox", "Search...") style: TextFieldStyle { textColor: UM.Theme.getColor("setting_control_text"); + placeholderTextColor: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default"); background: Item {} } @@ -118,7 +211,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width color: UM.Theme.getColor("setting_control_button") hoverColor: UM.Theme.getColor("setting_control_button_hover") @@ -137,7 +230,7 @@ Item anchors.bottom: parent.bottom; anchors.right: parent.right; anchors.left: parent.left; - anchors.topMargin: filterContainer.visible ? UM.Theme.getSize("default_margin").width : 0 + anchors.topMargin: filterContainer.visible ? UM.Theme.getSize("sidebar_margin").height : 0 Behavior on anchors.topMargin { NumberAnimation { duration: 100 } } style: UM.Theme.styles.scrollview; @@ -296,7 +389,7 @@ Item contextMenu.provider = provider contextMenu.popup(); } - onShowTooltip: base.showTooltip(delegate, { x: 0, y: delegate.height / 2 }, text) + onShowTooltip: base.showTooltip(delegate, { x: -UM.Theme.getSize("default_arrow").width, y: delegate.height / 2 }, text) onHideTooltip: base.hideTooltip() onShowAllHiddenInheritedSettings: { diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml old mode 100755 new mode 100644 index db5f60862d..383c599da8 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -16,15 +16,22 @@ Rectangle property int currentModeIndex; property bool hideSettings: PrintInformation.preSliced + property bool hideView: Cura.MachineManager.activeMachineName == "" // Is there an output device for this printer? property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - property int backendState: UM.Backend.state; + property int backendState: UM.Backend.state property bool monitoringPrint: false + property variant printDuration: PrintInformation.currentPrintTime + property variant printMaterialLengths: PrintInformation.materialLengths + property variant printMaterialWeights: PrintInformation.materialWeights + property variant printMaterialCosts: PrintInformation.materialCosts + property variant printMaterialNames: PrintInformation.materialNames + color: UM.Theme.getColor("sidebar") UM.I18nCatalog { id: catalog; name:"cura"} @@ -37,14 +44,14 @@ Rectangle onTriggered: { - base.showTooltip(base, {x:1, y:item.y}, text); + base.showTooltip(base, {x: 0, y: item.y}, text); } } function showTooltip(item, position, text) { tooltip.text = text; - position = item.mapToItem(base, position.x, position.y); + position = item.mapToItem(base, position.x - UM.Theme.getSize("default_arrow").width, position.y); tooltip.show(position); } @@ -83,6 +90,7 @@ Rectangle SidebarHeader { id: header width: parent.width + visible: machineExtruderCount.properties.value > 1 || Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() @@ -91,11 +99,11 @@ Rectangle Rectangle { id: headerSeparator width: parent.width - visible: !monitoringPrint && !hideSettings + visible: settingsModeSelection.visible && header.visible height: visible ? UM.Theme.getSize("sidebar_lining").height : 0 color: UM.Theme.getColor("sidebar_lining") anchors.top: header.bottom - anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0 + anchors.topMargin: visible ? UM.Theme.getSize("sidebar_margin").height : 0 } onCurrentModeIndexChanged: @@ -107,38 +115,47 @@ Rectangle } } - Text { + Label { id: settingsModeLabel text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox","Print Setup disabled\nG-code files cannot be modified"); anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width; + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.top: headerSeparator.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - width: parent.width * 0.45 - 2 * UM.Theme.getSize("default_margin").width + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + width: Math.floor(parent.width * 0.45) font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") - visible: !monitoringPrint - elide: Text.ElideRight + visible: !monitoringPrint && !hideView } Rectangle { id: settingsModeSelection color: "transparent" - width: parent.width * 0.55 + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.top: headerSeparator.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - visible: !monitoringPrint && !hideSettings + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.top: + { + if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2) + { + return settingsModeLabel.bottom; + } + else + { + return headerSeparator.bottom; + } + } + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + visible: !monitoringPrint && !hideSettings && !hideView Component{ id: wizardDelegate Button { height: settingsModeSelection.height anchors.left: parent.left - anchors.leftMargin: model.index * (settingsModeSelection.width / 2) + anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter - width: 0.5 * parent.width + width: Math.floor(0.5 * parent.width) text: model.text exclusiveGroup: modeMenuGroup; checkable: true; @@ -161,21 +178,27 @@ Rectangle style: ButtonStyle { background: Rectangle { - border.width: UM.Theme.getSize("default_lining").width - border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") : - control.pressed ? UM.Theme.getColor("toggle_active_border") : - control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border") - color: control.checked ? UM.Theme.getColor("toggle_checked") : - control.pressed ? UM.Theme.getColor("toggle_active") : - control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked") + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : + UM.Theme.getColor("action_button_border") + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : + UM.Theme.getColor("action_button") Behavior on color { ColorAnimation { duration: 50; } } Label { - anchors.centerIn: parent - color: control.checked ? UM.Theme.getColor("toggle_checked_text") : - control.pressed ? UM.Theme.getColor("toggle_active_text") : - control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text") + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : + UM.Theme.getColor("action_button_text") font: UM.Theme.getFont("default") - text: control.text; + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle } } label: Item { } @@ -184,122 +207,15 @@ Rectangle } ExclusiveGroup { id: modeMenuGroup; } - Label + ListView { - id: toggleLeftText - anchors.right: modeToggleSwitch.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.verticalCenter - text: "" - color: - { - if(toggleLeftTextMouseArea.containsMouse) - { - return UM.Theme.getColor("mode_switch_text_hover"); - } - else if(!modeToggleSwitch.checked) - { - return UM.Theme.getColor("mode_switch_text_checked"); - } - else - { - return UM.Theme.getColor("mode_switch_text"); - } - } - font: UM.Theme.getFont("default") - - MouseArea - { - id: toggleLeftTextMouseArea - hoverEnabled: true - anchors.fill: parent - onClicked: - { - modeToggleSwitch.checked = false; - } - - Component.onCompleted: - { - clicked.connect(modeToggleSwitch.clicked) - } - } - } - - Switch - { - id: modeToggleSwitch - checked: false - anchors.right: toggleRightText.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.verticalCenter - - property bool _hovered: modeToggleSwitchMouseArea.containsMouse || toggleLeftTextMouseArea.containsMouse || toggleRightTextMouseArea.containsMouse - - MouseArea - { - id: modeToggleSwitchMouseArea - anchors.fill: parent - hoverEnabled: true - acceptedButtons: Qt.NoButton - } - - onCheckedChanged: - { - var index = 0; - if (checked) - { - index = 1; - } - updateActiveMode(index); - } - - function updateActiveMode(index) - { - base.currentModeIndex = index; - UM.Preferences.setValue("cura/active_mode", index); - } - - style: UM.Theme.styles.mode_switch - } - - Label - { - id: toggleRightText - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - text: "" - color: - { - if(toggleRightTextMouseArea.containsMouse) - { - return UM.Theme.getColor("mode_switch_text_hover"); - } - else if(modeToggleSwitch.checked) - { - return UM.Theme.getColor("mode_switch_text_checked"); - } - else - { - return UM.Theme.getColor("mode_switch_text"); - } - } - font: UM.Theme.getFont("default") - - MouseArea - { - id: toggleRightTextMouseArea - hoverEnabled: true - anchors.fill: parent - onClicked: - { - modeToggleSwitch.checked = true; - } - - Component.onCompleted: - { - clicked.connect(modeToggleSwitch.clicked) - } - } + id: modesList + property var index: 0 + model: modesListModel + delegate: wizardDelegate + anchors.top: parent.top + anchors.left: parent.left + width: parent.width } } @@ -309,7 +225,7 @@ Rectangle anchors.bottom: footerSeparator.top anchors.top: settingsModeSelection.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: base.left anchors.right: base.right visible: !monitoringPrint && !hideSettings @@ -394,8 +310,221 @@ Rectangle width: parent.width height: UM.Theme.getSize("sidebar_lining").height color: UM.Theme.getColor("sidebar_lining") - anchors.bottom: saveButton.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height + anchors.bottom: printSpecs.top + anchors.bottomMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) + } + + Item + { + id: printSpecs + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + height: timeDetails.height + costSpec.height + width: base.width - (saveButton.buttonRowWidth + UM.Theme.getSize("sidebar_margin").width) + visible: !monitoringPrint + clip: true + + Label + { + id: timeDetails + anchors.left: parent.left + anchors.bottom: costSpec.top + font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text_subtext") + text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label Hours and minutes", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) + + MouseArea + { + id: timeDetailsMouseArea + anchors.fill: parent + hoverEnabled: true + + onEntered: + { + + if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) + { + // All the time information for the different features is achieved + var print_time = PrintInformation.getFeaturePrintTimes(); + var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) + + // A message is created and displayed when the user hover the time label + var content = catalog.i18nc("@tooltip", "Time specification
"); + for(var feature in print_time) + { + if(!print_time[feature].isTotalDurationZero) + { + var feature_name = ""; + + if (feature.length <= 11) + { + feature_name = feature + } + else{ + feature_name = feature.substring(0, 8) + "..." + } + + + content += ""; + } + } + content += "
" + feature_name + ":" + + "  " + print_time[feature].getDisplayString(UM.DurationFormat.Short) + + "  " + Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds) + "%" + + "
"; + + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content); + } + } + onExited: + { + base.hideTooltip(); + } + } + } + + Label + { + + function getSpecsData(){ + + var lengths = []; + var total_length = 0; + var weights = []; + var total_weight = 0; + var costs = []; + var total_cost = 0; + var some_costs_known = false; + var names = []; + if(base.printMaterialLengths) { + for(var index = 0; index < base.printMaterialLengths.length; index++) + { + if(base.printMaterialLengths[index] > 0) + { + names.push(base.printMaterialNames[index]); + lengths.push(base.printMaterialLengths[index].toFixed(2)); + weights.push(String(Math.floor(base.printMaterialWeights[index]))); + var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); + costs.push(cost); + if(cost > 0) + { + some_costs_known = true; + } + + total_length += base.printMaterialLengths[index]; + total_weight += base.printMaterialWeights[index]; + total_cost += base.printMaterialCosts[index]; + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"]; + weights = ["0"]; + costs = ["0.00"]; + } + + var tooltip_html = "%1
".arg(catalog.i18nc("@label", "Cost specification")); + for(var index = 0; index < lengths.length; index++) + { + var item_strings = [ + "%1:".arg(names[index]), + catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), + catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), + ]; + tooltip_html += ""; + for(var item = 0; item < item_strings.length; item++) { + tooltip_html += "".arg(item_strings[item]); + } + } + var item_strings = [ + catalog.i18nc("@label", "Total:"), + catalog.i18nc("@label m for meter", "%1m").arg(total_length.toFixed(2)), + catalog.i18nc("@label g for grams", "%1g").arg(Math.round(total_weight)), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(total_cost.toFixed(2)), + ]; + tooltip_html += ""; + for(var item = 0; item < item_strings.length; item++) { + tooltip_html += "".arg(item_strings[item]); + } + tooltip_html += "
%1  
%1  
"; + tooltipText = tooltip_html; + + + return tooltipText + } + + id: costSpec + anchors.left: parent.left + anchors.bottom: parent.bottom + font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text_subtext") + elide: Text.ElideMiddle + width: parent.width + property string tooltipText + text: + { + var lengths = []; + var weights = []; + var costs = []; + var someCostsKnown = false; + if(base.printMaterialLengths) { + for(var index = 0; index < base.printMaterialLengths.length; index++) + { + if(base.printMaterialLengths[index] > 0) + { + lengths.push(base.printMaterialLengths[index].toFixed(2)); + weights.push(String(Math.floor(base.printMaterialWeights[index]))); + var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); + costs.push(cost); + if(cost > 0) + { + someCostsKnown = true; + } + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"]; + weights = ["0"]; + costs = ["0.00"]; + } + if(someCostsKnown) + { + return catalog.i18nc("@label Print estimates: m for meters, g for grams, %4 is currency and %3 is print cost", "%1m / ~ %2g / ~ %4 %3").arg(lengths.join(" + ")) + .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency")); + } + else + { + return catalog.i18nc("@label Print estimates: m for meters, g for grams", "%1m / ~ %2g").arg(lengths.join(" + ")).arg(weights.join(" + ")); + } + } + MouseArea + { + id: costSpecMouseArea + anchors.fill: parent + hoverEnabled: true + + onEntered: + { + + if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) + { + var show_data = costSpec.getSpecsData() + + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), show_data); + } + } + onExited: + { + base.hideTooltip(); + } + } + } } // SaveButton and MonitorButton are actually the bottom footer panels. @@ -404,7 +533,8 @@ Rectangle { id: saveButton implicitWidth: base.width - implicitHeight: totalHeight + anchors.top: footerSeparator.bottom + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.bottom: parent.bottom visible: !monitoringPrint } @@ -413,7 +543,8 @@ Rectangle { id: monitorButton implicitWidth: base.width - implicitHeight: totalHeight + anchors.top: footerSeparator.bottom + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.bottom: parent.bottom visible: monitoringPrint } @@ -462,14 +593,10 @@ Rectangle }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); - toggleLeftText.text = modesListModel.get(0).text; - toggleRightText.text = modesListModel.get(1).text; - - var index = parseInt(UM.Preferences.getValue("cura/active_mode")); - if (index) + var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) + if(index) { currentModeIndex = index; - modeToggleSwitch.checked = index > 0; } } diff --git a/resources/qml/SidebarAdvanced.qml b/resources/qml/SidebarAdvanced.qml index 0a3f25528f..95f218639b 100644 --- a/resources/qml/SidebarAdvanced.qml +++ b/resources/qml/SidebarAdvanced.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.0 diff --git a/resources/qml/SidebarContents.qml b/resources/qml/SidebarContents.qml index c53818a9ce..eae718023b 100644 --- a/resources/qml/SidebarContents.qml +++ b/resources/qml/SidebarContents.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index eb883d9959..78e21f3a68 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -15,29 +15,39 @@ Column id: base; property int currentExtruderIndex: ExtruderManager.activeExtruderIndex; + property bool currentExtruderVisible: extrudersList.visible; - spacing: UM.Theme.getSize("default_margin").height + spacing: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.9) signal showTooltip(Item item, point location, string text) signal hideTooltip() + Item + { + anchors + { + left: parent.left + right: parent.right + } + visible: extruderSelectionRow.visible + height: UM.Theme.getSize("default_lining").height + width: height + } + Item { id: extruderSelectionRow width: parent.width - height: UM.Theme.getSize("sidebar_tabs").height + height: Math.floor(UM.Theme.getSize("sidebar_tabs").height * 2 / 3) visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - Rectangle + anchors { - id: extruderSeparator - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - - width: parent.width - height: parent.height - color: UM.Theme.getColor("sidebar_lining") - - anchors.top: extruderSelectionRow.top + left: parent.left + leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) + right: parent.right + rightMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) + topMargin: UM.Theme.getSize("sidebar_margin").height } ListView @@ -46,14 +56,16 @@ Column property var index: 0 height: UM.Theme.getSize("sidebar_header_mode_tabs").height - width: parent.width + width: Math.floor(parent.width) boundsBehavior: Flickable.StopAtBounds anchors { left: parent.left + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) right: parent.right - bottom: extruderSelectionRow.bottom + rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) + verticalCenter: parent.verticalCenter } ExclusiveGroup { id: extruderMenuGroup; } @@ -65,12 +77,7 @@ Column Connections { target: Cura.MachineManager - onGlobalContainerChanged: - { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 - ExtruderManager.setActiveExtruderIndex(extruder_index); - } + onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. } delegate: Button @@ -91,61 +98,116 @@ Column style: ButtonStyle { - background: Rectangle + background: Item { - border.width: UM.Theme.getSize("default_lining").width - border.color: control.checked ? UM.Theme.getColor("tab_checked_border") : - control.pressed ? UM.Theme.getColor("tab_active_border") : - control.hovered ? UM.Theme.getColor("tab_hovered_border") : UM.Theme.getColor("tab_unchecked_border") - color: control.checked ? UM.Theme.getColor("tab_checked") : - control.pressed ? UM.Theme.getColor("tab_active") : - control.hovered ? UM.Theme.getColor("tab_hovered") : UM.Theme.getColor("tab_unchecked") - Behavior on color { ColorAnimation { duration: 50; } } - Rectangle { - id: highlight - visible: control.checked - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - height: UM.Theme.getSize("sidebar_header_highlight").height - color: UM.Theme.getColor("sidebar_header_bar") + anchors.fill: parent + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : + UM.Theme.getColor("action_button_border") + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : + UM.Theme.getColor("action_button") + Behavior on color { ColorAnimation { duration: 50; } } } - Rectangle + Item { - id: swatch - visible: index > -1 - height: UM.Theme.getSize("setting_control").height / 2 - width: height - anchors.left: parent.left - anchors.leftMargin: (parent.height - height) / 2 - anchors.verticalCenter: parent.verticalCenter + id: extruderButtonFace + anchors.centerIn: parent + width: { + var extruderTextWidth = extruderStaticText.visible ? extruderStaticText.width : 0; + var iconWidth = extruderIconItem.width; + return Math.floor(extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2); + } - color: model.color - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("setting_control_border") - } + // Static text "Extruder" + Label + { + id: extruderStaticText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left - Text - { - anchors.verticalCenter: parent.verticalCenter - anchors.left: swatch.visible ? swatch.right : parent.left - anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : + UM.Theme.getColor("action_button_text") - color: control.checked ? UM.Theme.getColor("tab_checked_text") : - control.pressed ? UM.Theme.getColor("tab_active_text") : - control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text") + font: UM.Theme.getFont("large_nonbold") + text: catalog.i18nc("@label", "Extruder") + visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) + elide: Text.ElideRight + } - font: UM.Theme.getFont("default") - text: control.text - elide: Text.ElideRight + // Everthing for the extruder icon + Item + { + id: extruderIconItem + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + property var sizeToUse: + { + var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; + var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; + var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; + minimumSize -= Math.floor(UM.Theme.getSize("default_margin").width / 2); + return minimumSize; + } + + width: sizeToUse + height: sizeToUse + + UM.RecolorImage { + id: mainCircle + anchors.fill: parent + + sourceSize.width: parent.width + sourceSize.height: parent.width + source: UM.Theme.getIcon("extruder_button") + + color: extruderNumberText.color + } + + Label + { + id: extruderNumberText + anchors.centerIn: parent + text: index + 1; + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : + UM.Theme.getColor("action_button_text") + font: UM.Theme.getFont("default_bold") + } + + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. + Rectangle + { + anchors + { + right: parent.right + top: parent.top + rightMargin: parent.sizeToUse * 0.01 + topMargin: parent.sizeToUse * 0.05 + } + + color: model.color + + width: parent.width * 0.35 + height: parent.height * 0.35 + radius: width / 2 + + border.width: 1 + border.color: UM.Theme.getColor("extruder_button_material_border") + + opacity: !control.checked ? 0.6 : 1.0 + } + } } } - label: Item { } + label: Item {} } } } @@ -154,229 +216,165 @@ Column Item { id: variantRowSpacer - height: UM.Theme.getSize("default_margin").height / 4 + height: UM.Theme.getSize("sidebar_margin").height / 4 width: height visible: !extruderSelectionRow.visible } + // Material Row Item { - id: variantRow - + id: materialRow height: UM.Theme.getSize("sidebar_setup").height - visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials) && !sidebar.monitoringPrint && !sidebar.hideSettings + visible: Cura.MachineManager.hasMaterials && !sidebar.monitoringPrint && !sidebar.hideSettings anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width + leftMargin: UM.Theme.getSize("sidebar_margin").width right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width + rightMargin: UM.Theme.getSize("sidebar_margin").width } - Text + Label { - id: variantLabel - width: parent.width * 0.30 - - anchors.verticalCenter: parent.verticalCenter - anchors.left: variantRow.left - - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - - text: - { - var label; - if(Cura.MachineManager.hasVariants && Cura.MachineManager.hasMaterials) - { - label = "%1 & %2".arg(Cura.MachineManager.activeDefinitionVariantsName).arg(catalog.i18nc("@label","Material")); - } - else if(Cura.MachineManager.hasVariants) - { - label = Cura.MachineManager.activeDefinitionVariantsName; - } - else - { - label = catalog.i18nc("@label","Material"); - } - return "%1:".arg(label); - } - } - - Button - { - id: materialInfoButton - height: parent.height * 0.60 - width: height - - anchors.right: materialVariantContainer.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.verticalCenter - - visible: extrudersList.visible - - text: "i" - style: UM.Theme.styles.info_button - - onClicked: - { - // open the material URL with web browser - var version = UM.Application.version; - var machineName = Cura.MachineManager.activeMachine.definition.id; - - var url = "https://ultimaker.com/materialcompatibility/" + version + "/" + machineName; - Qt.openUrlExternally(url); - } - - onHoveredChanged: - { - if (hovered) - { - var content = catalog.i18nc("@tooltip", "Click to check the material compatibility on Ultimaker.com."); - base.showTooltip( - extruderSelectionRow, Qt.point(0, extruderSelectionRow.height + variantRow.height / 2), catalog.i18nc("@tooltip", content) - ); - } - else - { - base.hideTooltip(); - } - } - } - - Item - { - id: materialVariantContainer - - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - - width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("setting_control").height - - ToolButton { - id: variantSelection - text: Cura.MachineManager.activeVariantName - tooltip: Cura.MachineManager.activeVariantName; - visible: Cura.MachineManager.hasVariants - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 - - height: UM.Theme.getSize("setting_control").height - width: materialSelection.visible ? (parent.width - UM.Theme.getSize("default_margin").width) / 2 : parent.width - anchors.left: parent.left - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: NozzleMenu { extruderIndex: base.currentExtruderIndex } - } - - ToolButton { - id: materialSelection - text: Cura.MachineManager.activeMaterialName - tooltip: Cura.MachineManager.activeMaterialName - visible: Cura.MachineManager.hasMaterials - property var valueError: - { - var data = Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") - if(data == "False") - { - return true - } - else - { - return false - } - - } - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 - - height: UM.Theme.getSize("setting_control").height - width: variantSelection.visible ? (parent.width - UM.Theme.getSize("default_margin").width) / 2 : parent.width - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: MaterialMenu { extruderIndex: base.currentExtruderIndex } - } - } - } - - Row - { - id: globalProfileRow - height: UM.Theme.getSize("sidebar_setup").height - visible: !sidebar.monitoringPrint && !sidebar.hideSettings - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width - } - - - Text - { - id: globalProfileLabel - text: catalog.i18nc("@label","Profile:"); - width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width + id: materialLabel + text: catalog.i18nc("@label","Material"); + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } ToolButton { - id: globalProfileSelection - text: { - var result = Cura.MachineManager.activeQualityName; - if (Cura.MachineManager.activeQualityLayerHeight > 0) { - result += " "; - result += " - "; - result += Cura.MachineManager.activeQualityLayerHeight + "mm"; - result += ""; - } - return result; - } - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 + id: materialSelection - width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width + text: Cura.MachineManager.activeMaterialName + tooltip: Cura.MachineManager.activeMaterialName + visible: Cura.MachineManager.hasMaterials + enabled: !extrudersList.visible || base.currentExtruderIndex > -1 height: UM.Theme.getSize("setting_control").height - tooltip: Cura.MachineManager.activeQualityName + width: parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width + anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; + menu: MaterialMenu { + extruderIndex: base.currentExtruderIndex + } + + property var valueError: !isMaterialSupported() property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - menu: ProfileMenu { } - UM.SimpleButton - { - id: customisedSettings + function isMaterialSupported () { + return Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") == "True" + } + } + } - visible: Cura.MachineManager.hasUserSettings - height: parent.height * 0.6 - width: parent.height * 0.6 + //Variant row + Item + { + id: variantRow + height: UM.Theme.getSize("sidebar_setup").height + visible: Cura.MachineManager.hasVariants && !sidebar.monitoringPrint && !sidebar.hideSettings - anchors.verticalCenter: parent.verticalCenter + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("sidebar_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: variantLabel + text: Cura.MachineManager.activeDefinitionVariantsName; + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + } + + ToolButton { + id: variantSelection + text: Cura.MachineManager.activeVariantName + tooltip: Cura.MachineManager.activeVariantName; + visible: Cura.MachineManager.hasVariants + + height: UM.Theme.getSize("setting_control").height + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + anchors.right: parent.right + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + + menu: NozzleMenu { extruderIndex: base.currentExtruderIndex } + } + } + + // Material info row + Item + { + id: materialInfoRow + height: Math.floor(UM.Theme.getSize("sidebar_setup").height / 2) + visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials) && !sidebar.monitoringPrint && !sidebar.hideSettings + + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("sidebar_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("sidebar_margin").width + } + + Item { + height: UM.Theme.getSize("sidebar_setup").height + anchors.right: parent.right + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + + UM.RecolorImage { + id: warningImage + anchors.right: materialInfoLabel.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.Bottom + source: UM.Theme.getIcon("warning") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + color: UM.Theme.getColor("material_compatibility_warning") + visible: !Cura.MachineManager.isCurrentSetupSupported + } + + Label { + id: materialInfoLabel + wrapMode: Text.WordWrap + text: catalog.i18nc("@label", "Check material compatibility") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + verticalAlignment: Text.AlignTop + anchors.top: parent.top anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("default_margin").width + anchors.bottom: parent.bottom - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("star"); - - onClicked: - { - forceActiveFocus(); - Cura.Actions.manageProfiles.trigger() + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: { + // open the material URL with web browser + var version = UM.Application.version; + var machineName = Cura.MachineManager.activeMachine.definition.id; + var url = "https://ultimaker.com/materialcompatibility/" + version + "/" + machineName; + Qt.openUrlExternally(url); + } + onEntered: { + var content = catalog.i18nc("@tooltip", "Click to check the material compatibility on Ultimaker.com."); + base.showTooltip( + materialInfoRow, + Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), + catalog.i18nc("@tooltip", content) + ); + } + onExited: base.hideTooltip(); } - onEntered: - { - var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") - base.showTooltip(globalProfileRow, Qt.point(0, globalProfileRow.height / 2), content) - } - onExited: base.hideTooltip() } } } diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index f988ae0e8b..549d203c4d 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -7,7 +7,7 @@ import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 import UM 1.2 as UM -import Cura 1.0 as Cura +import Cura 1.2 as Cura Item { @@ -23,142 +23,305 @@ Item Component.onCompleted: PrintInformation.enabled = true Component.onDestruction: PrintInformation.enabled = false - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura" } - Item + ScrollView { - id: infillCellLeft - anchors.top: parent.top - anchors.left: parent.left - anchors.topMargin: UM.Theme.getSize("default_margin").height - width: base.width * .45 - UM.Theme.getSize("default_margin").width - height: childrenRect.height + visible: Cura.MachineManager.activeMachineName != "" // If no printers added then the view is invisible + anchors.fill: parent + style: UM.Theme.styles.scrollview + flickableItem.flickableDirection: Flickable.VerticalFlick - Text + Rectangle { - id: infillLabel - //: Infill selection label - text: catalog.i18nc("@label", "Infill"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - } - } + width: childrenRect.width + height: childrenRect.height + color: UM.Theme.getColor("sidebar") - Row - { - id: infillCellRight - - height: childrenRect.height; - width: base.width * .55 - - spacing: UM.Theme.getSize("default_margin").width - - anchors.left: infillCellLeft.right - anchors.top: infillCellLeft.top - - Repeater - { - id: infillListView - property int activeIndex: + // + // Quality profile + // + Item { - for(var i = 0; i < infillModel.count; ++i) + id: qualityRow + + height: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: parent.right + + Timer { - var density = parseInt(infillDensity.properties.value); - var steps = parseInt(infillSteps.properties.value); - if(density > infillModel.get(i).percentageMin && density <= infillModel.get(i).percentageMax && steps > infillModel.get(i).stepsMin && steps <= infillModel.get(i).stepsMax) - { - return i; + id: qualitySliderChangeTimer + interval: 50 + running: false + repeat: false + onTriggered: Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(qualitySlider.value).id) + } + + Component.onCompleted: qualityModel.update() + + Connections + { + target: Cura.MachineManager + onActiveQualityChanged: qualityModel.update() + onActiveMaterialChanged: qualityModel.update() + onActiveVariantChanged: qualityModel.update() + } + + ListModel + { + id: qualityModel + + property var totalTicks: 0 + property var availableTotalTicks: 0 + property var existingQualityProfile: 0 + + property var qualitySliderActiveIndex: 0 + property var qualitySliderStepWidth: 0 + property var qualitySliderAvailableMin: 0 + property var qualitySliderAvailableMax: 0 + property var qualitySliderMarginRight: 0 + + function update () { + reset() + + var availableMin = -1 + var availableMax = -1 + + for (var i = 0; i < Cura.ProfilesModel.rowCount(); i++) { + var qualityItem = Cura.ProfilesModel.getItem(i) + + // Add each quality item to the UI quality model + qualityModel.append(qualityItem) + + // Set selected value + if (Cura.MachineManager.activeQualityType == qualityItem.metadata.quality_type) { + + // set to -1 when switching to user created profile so all ticks are clickable + if (Cura.SimpleModeSettingsManager.isProfileUserCreated) { + qualityModel.qualitySliderActiveIndex = -1 + } else { + qualityModel.qualitySliderActiveIndex = i + } + + qualityModel.existingQualityProfile = 1 + } + + // Set min available + if (qualityItem.available && availableMin == -1) { + availableMin = i + } + + // Set max available + if (qualityItem.available) { + availableMax = i + } + } + + // Set total available ticks for active slider part + if (availableMin != -1) { + qualityModel.availableTotalTicks = availableMax - availableMin + } + + // Calculate slider values + calculateSliderStepWidth(qualityModel.totalTicks) + calculateSliderMargins(availableMin, availableMax, qualityModel.totalTicks) + + qualityModel.qualitySliderAvailableMin = availableMin + qualityModel.qualitySliderAvailableMax = availableMax + } + + function calculateSliderStepWidth (totalTicks) { + qualityModel.qualitySliderStepWidth = totalTicks != 0 ? (base.width * 0.55) / (totalTicks) : 0 + } + + function calculateSliderMargins (availableMin, availableMax, totalTicks) { + if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) { + qualityModel.qualitySliderMarginRight = base.width * 0.55 + } else if (availableMin == availableMax) { + qualityModel.qualitySliderMarginRight = (totalTicks - availableMin) * qualitySliderStepWidth + } else { + qualityModel.qualitySliderMarginRight = (totalTicks - availableMax) * qualitySliderStepWidth + } + } + + function reset () { + qualityModel.clear() + qualityModel.availableTotalTicks = -1 + qualityModel.existingQualityProfile = 0 + + // check, the ticks count cannot be less than zero + qualityModel.totalTicks = Math.max(0, Cura.ProfilesModel.rowCount() - 1) } } - return -1; - } - model: infillModel; - - Item - { - width: childrenRect.width; - height: childrenRect.height; - - Rectangle + Label { - id: infillIconLining + id: qualityRowTitle + text: catalog.i18nc("@label", "Layer Height") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } - width: (infillCellRight.width - ((infillModel.count - 1) * UM.Theme.getSize("default_margin").width)) / (infillModel.count); - height: width + // Show titles for the each quality slider ticks + Item + { + y: -5; + anchors.left: speedSlider.left + Repeater + { + model: qualityModel - border.color: - { - if(!base.settingsEnabled) + Label { - return UM.Theme.getColor("setting_control_disabled_border") - } - else if(infillListView.activeIndex == index) - { - return UM.Theme.getColor("setting_control_selected") - } - else if(infillMouseArea.containsMouse) - { - return UM.Theme.getColor("setting_control_border_highlight") - } - return UM.Theme.getColor("setting_control_border") - } - border.width: UM.Theme.getSize("default_lining").width - color: - { - if(infillListView.activeIndex == index) - { - if(!base.settingsEnabled) + anchors.verticalCenter: parent.verticalCenter + anchors.top: parent.top + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + color: (Cura.MachineManager.activeMachine != null && Cura.ProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + text: { - return UM.Theme.getColor("setting_control_disabled_text") + var result = "" + if(Cura.MachineManager.activeMachine != null){ + + var result = Cura.ProfilesModel.getItem(index).layer_height_without_unit + + if(result == undefined) + result = "" + } + return result + } + + x: { + // Make sure the text aligns correctly with each tick + if (qualityModel.totalTicks == 0) { + // If there is only one tick, align it centrally + return parseInt(((base.width * 0.55) - width) / 2) + } else if (index == 0) { + return (base.width * 0.55 / qualityModel.totalTicks) * index + } else if (index == qualityModel.totalTicks) { + return (base.width * 0.55 / qualityModel.totalTicks) * index - width + } else { + return parseInt((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + } } - return UM.Theme.getColor("setting_control_selected") } - return "transparent" + } + } + + //Print speed slider + Item + { + id: speedSlider + width: base.width * 0.55 + height: UM.Theme.getSize("sidebar_margin").height + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + + // Draw Unavailable line + Rectangle + { + id: groovechildrect + width: base.width * 0.55 + height: 2 * screenScaleFactor + color: UM.Theme.getColor("quality_slider_unavailable") + anchors.verticalCenter: qualitySlider.verticalCenter + x: 0 } - UM.RecolorImage + // Draw ticks + Repeater { - id: infillIcon - anchors.fill: parent; - anchors.margins: 2 + id: qualityRepeater + model: qualityModel.totalTicks > 0 ? qualityModel : 0 - sourceSize.width: width - sourceSize.height: width - source: UM.Theme.getIcon(model.icon); - color: { - if(infillListView.activeIndex == index) - { - return UM.Theme.getColor("text_reversed") + Rectangle + { + anchors.verticalCenter: parent.verticalCenter + color: Cura.ProfilesModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + width: 1 * screenScaleFactor + height: 6 * screenScaleFactor + y: 0 + x: qualityModel.qualitySliderStepWidth * index + } + } + + Rectangle { + id: disabledHandleButton + visible: !qualitySlider.visible + anchors.centerIn: parent + color: UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: width / 2 + } + + Slider + { + id: qualitySlider + height: UM.Theme.getSize("sidebar_margin").height + anchors.bottom: speedSlider.bottom + enabled: qualityModel.availableTotalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized + visible: qualityModel.totalTicks > 0 + updateValueWhileDragging : false + + minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 + maximumValue: qualityModel.qualitySliderAvailableMax >= 0 ? qualityModel.qualitySliderAvailableMax : 0 + stepSize: 1 + + value: qualityModel.qualitySliderActiveIndex + + width: qualityModel.qualitySliderStepWidth * qualityModel.availableTotalTicks + + anchors.right: parent.right + anchors.rightMargin: qualityModel.qualitySliderMarginRight + + style: SliderStyle + { + //Draw Available line + groove: Rectangle { + implicitHeight: 2 * screenScaleFactor + color: UM.Theme.getColor("quality_slider_available") + radius: height / 2 } - if(!base.settingsEnabled) - { - return UM.Theme.getColor("setting_control_disabled_text") + handle: Item { + Rectangle { + id: qualityhandleButton + anchors.centerIn: parent + color: UM.Theme.getColor("quality_slider_available") + implicitWidth: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: implicitWidth / 2 + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile + } + } + } + + onValueChanged: { + // only change if an active machine is set and the slider is visible at all. + if (Cura.MachineManager.activeMachine != null && visible) { + // prevent updating during view initializing. Trigger only if the value changed by user + if (qualitySlider.value != qualityModel.qualitySliderActiveIndex) { + // start updating with short delay + qualitySliderChangeTimer.start() + } } - return UM.Theme.getColor("setting_control_disabled_text") } } MouseArea { - id: infillMouseArea + id: speedSliderMouseArea anchors.fill: parent hoverEnabled: true - enabled: base.settingsEnabled - onClicked: { - if (infillListView.activeIndex != index) - { - infillDensity.setPropertyValue("value", model.percentage) - infillSteps.setPropertyValue("value", model.steps) - } - } + enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated + onEntered: { - base.showTooltip(infillCellRight, Qt.point(-infillCellRight.x, 0), model.text); + var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) } onExited: { @@ -166,320 +329,678 @@ Item } } } - Text + + Label + { + id: speedLabel + anchors.top: speedSlider.bottom + + anchors.left: parent.left + + text: catalog.i18nc("@label", "Print Speed") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + + Label + { + anchors.bottom: speedLabel.bottom + anchors.left: speedSlider.left + + text: catalog.i18nc("@label", "Slower") + font: UM.Theme.getFont("default") + color: (qualityModel.availableTotalTicks > 0) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + horizontalAlignment: Text.AlignLeft + } + + Label + { + anchors.bottom: speedLabel.bottom + anchors.right: speedSlider.right + + text: catalog.i18nc("@label", "Faster") + font: UM.Theme.getFont("default") + color: (qualityModel.availableTotalTicks > 0) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + horizontalAlignment: Text.AlignRight + } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.SimpleModeSettingsManager.isProfileCustomized + height: speedSlider.height * 0.8 + width: speedSlider.height * 0.8 + + anchors.verticalCenter: speedSlider.verticalCenter + anchors.right: speedSlider.left + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width / 2 + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("reset"); + + onClicked: + { + discardOrKeepProfileChangesDialog.show() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() + } + } + + + + // + // Infill + // + Item + { + id: infillCellLeft + + anchors.top: qualityRow.bottom + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 + anchors.left: parent.left + + width: parseInt(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) + + Label { id: infillLabel - width: (infillCellRight.width - ((infillModel.count - 1) * UM.Theme.getSize("default_margin").width)) / (infillModel.count); - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - wrapMode: Text.WordWrap + text: catalog.i18nc("@label", "Infill") font: UM.Theme.getFont("default") - anchors.top: infillIconLining.bottom - anchors.horizontalCenter: infillIconLining.horizontalCenter - color: infillListView.activeIndex == index ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_border") - text: name - } - } - } + color: UM.Theme.getColor("text") - ListModel - { - id: infillModel - - Component.onCompleted: - { - infillModel.append({ - name: catalog.i18nc("@label", "0%"), - percentage: 0, - steps: 0, - percentageMin: -1, - percentageMax: 0, - stepsMin: -1, - stepsMax: 0, - text: catalog.i18nc("@label", "Empty infill will leave your model hollow with low strength."), - icon: "hollow" - }) - infillModel.append({ - name: catalog.i18nc("@label", "20%"), - percentage: 20, - steps: 0, - percentageMin: 0, - percentageMax: 30, - stepsMin: -1, - stepsMax: 0, - text: catalog.i18nc("@label", "Light (20%) infill will give your model an average strength."), - icon: "sparse" - }) - infillModel.append({ - name: catalog.i18nc("@label", "50%"), - percentage: 50, - steps: 0, - percentageMin: 30, - percentageMax: 70, - stepsMin: -1, - stepsMax: 0, - text: catalog.i18nc("@label", "Dense (50%) infill will give your model an above average strength."), - icon: "dense" - }) - infillModel.append({ - name: catalog.i18nc("@label", "100%"), - percentage: 100, - steps: 0, - percentageMin: 70, - percentageMax: 9999999999, - stepsMin: -1, - stepsMax: 0, - text: catalog.i18nc("@label", "Solid (100%) infill will make your model completely solid."), - icon: "solid" - }) - infillModel.append({ - name: catalog.i18nc("@label", "Gradual"), - percentage: 90, - steps: 5, - percentageMin: 0, - percentageMax: 9999999999, - stepsMin: 0, - stepsMax: 9999999999, - infill_layer_height: 1.5, - text: catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top."), - icon: "gradual" - }) - } - } - } - - Item - { - id: helpersCell - anchors.top: infillCellRight.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height * 2 - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - - Text - { - id: enableSupportLabel - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: enableSupportCheckBox.verticalCenter - width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label", "Generate Support"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - CheckBox - { - id: enableSupportCheckBox - property alias _hovered: enableSupportMouseArea.containsMouse - - anchors.top: parent.top - anchors.left: enableSupportLabel.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - - style: UM.Theme.styles.checkbox; - enabled: base.settingsEnabled - - checked: supportEnabled.properties.value == "True"; - - MouseArea - { - id: enableSupportMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: true - onClicked: - { - // The value is a string "True" or "False" - supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True"); - } - onEntered: - { - base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")); - } - onExited: - { - base.hideTooltip(); - } - } - } - - Text - { - id: supportExtruderLabel - visible: (supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1) - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: supportExtruderCombobox.verticalCenter - width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label", "Support Extruder"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ComboBox - { - id: supportExtruderCombobox - visible: (supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1) - model: extruderModel - - property string color_override: "" // for manually setting values - property string color: // is evaluated automatically, but the first time is before extruderModel being filled - { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; - if (current_extruder === undefined) { - return ""; - } - var model_color = current_extruder.color; - return (model_color) ? model_color : ""; - } - - textRole: 'text' // this solves that the combobox isn't populated in the first time Cura is started - - anchors.top: enableSupportCheckBox.bottom - anchors.topMargin: - { - if ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) - { - return UM.Theme.getSize("default_margin").height; - } - else - { - return 0; - } - } - anchors.left: supportExtruderLabel.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: parent.width * .55 - height: - { - if ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) - { - // default height when control is enabled - return UM.Theme.getSize("setting_control").height; - } - else - { - return 0; - } - } - Behavior on height { NumberAnimation { duration: 100 } } - - style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled - property alias _hovered: supportExtruderMouseArea.containsMouse - - currentIndex: supportExtruderNr.properties !== null ? parseFloat(supportExtruderNr.properties.value) : 0 - onActivated: - { - // Send the extruder nr as a string. - supportExtruderNr.setPropertyValue("value", String(index)); - } - MouseArea - { - id: supportExtruderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - acceptedButtons: Qt.NoButton - onEntered: - { - base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), - catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); - } - onExited: - { - base.hideTooltip(); + anchors.top: parent.top + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.7) + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width } } - function updateCurrentColor() + Item { - var current_extruder = extruderModel.get(currentIndex); - if (current_extruder !== undefined) { - supportExtruderCombobox.color_override = current_extruder.color; + id: infillCellRight + + height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) + width: parseInt(UM.Theme.getSize("sidebar").width * .55) + + anchors.left: infillCellLeft.right + anchors.top: infillCellLeft.top + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + + Label { + id: selectedInfillRateText + + //anchors.top: parent.top + anchors.left: infillSlider.left + anchors.leftMargin: parseInt((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) + anchors.right: parent.right + + text: parseInt(infillDensity.properties.value) + "%" + horizontalAlignment: Text.AlignLeft + + color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") } - } - } + // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider + Binding { + target: infillSlider + property: "value" + value: parseInt(infillDensity.properties.value) + } - Text - { - id: adhesionHelperLabel - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: adhesionCheckBox.verticalCenter - width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label", "Build Plate Adhesion"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - elide: Text.ElideRight - } - - CheckBox - { - id: adhesionCheckBox - property alias _hovered: adhesionMouseArea.containsMouse - - anchors.top: supportExtruderCombobox.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height * 2 - anchors.left: adhesionHelperLabel.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - - //: Setting enable printing build-plate adhesion helper checkbox - style: UM.Theme.styles.checkbox; - enabled: base.settingsEnabled - - checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" - - MouseArea - { - id: adhesionMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - onClicked: + Slider { - var adhesionType = "skirt"; - if(!parent.checked) + id: infillSlider + + anchors.top: selectedInfillRateText.bottom + anchors.left: parent.left + anchors.right: infillIcon.left + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + + height: UM.Theme.getSize("sidebar_margin").height + width: parseInt(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) + + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + tickmarksEnabled: true + + // disable slider when gradual support is enabled + enabled: parseInt(infillSteps.properties.value) == 0 + + // set initial value from stack + value: parseInt(infillDensity.properties.value) + + onValueChanged: { + + // Don't round the value if it's already the same + if (parseInt(infillDensity.properties.value) == infillSlider.value) { + return + } + + // Round the slider value to the nearest multiple of 10 (simulate step size of 10) + var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 + + // Update the slider value to represent the rounded value + infillSlider.value = roundedSliderValue + + // Explicitly cast to string to make sure the value passed to Python is an integer. + infillDensity.setPropertyValue("value", String(roundedSliderValue)) + } + + style: SliderStyle { - // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft - platformAdhesionType.removeFromContainer(0); - adhesionType = platformAdhesionType.properties.value; - if(adhesionType == "skirt") - { - // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim - adhesionType = "brim"; + groove: Rectangle { + id: groove + implicitWidth: 200 * screenScaleFactor + implicitHeight: 2 * screenScaleFactor + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + radius: 1 + } + + handle: Item { + Rectangle { + id: handleButton + anchors.centerIn: parent + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: 10 * screenScaleFactor + radius: 10 * screenScaleFactor + } + } + + tickmarks: Repeater { + id: repeater + model: control.maximumValue / control.stepSize + 1 + + // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) + function shouldShowTick (index) { + if (index % 10 == 0) { + return true + } + return false + } + + Rectangle { + anchors.verticalCenter: parent.verticalCenter + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + width: 1 * screenScaleFactor + height: 6 * screenScaleFactor + y: 0 + x: styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1)) + visible: shouldShowTick(index) + } } } - platformAdhesionType.setPropertyValue("value", adhesionType); } - onEntered: + + Rectangle { - base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), - catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); + id: infillIcon + + width: (parent.width / 5) - (UM.Theme.getSize("sidebar_margin").width) + height: width + + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + + // we loop over all density icons and only show the one that has the current density and steps + Repeater + { + id: infillIconList + model: infillModel + anchors.fill: parent + + property int activeIndex: { + for (var i = 0; i < infillModel.count; i++) { + var density = parseInt(infillDensity.properties.value) + var steps = parseInt(infillSteps.properties.value) + var infillModelItem = infillModel.get(i) + + if (density >= infillModelItem.percentageMin + && density <= infillModelItem.percentageMax + && steps >= infillModelItem.stepsMin + && steps <= infillModelItem.stepsMax){ + return i + } + } + return -1 + } + + Rectangle + { + anchors.fill: parent + visible: infillIconList.activeIndex == index + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("quality_slider_unavailable") + + UM.RecolorImage { + anchors.fill: parent + anchors.margins: 2 * screenScaleFactor + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon(model.icon) + color: UM.Theme.getColor("quality_slider_unavailable") + } + } + } } - onExited: + + // Gradual Support Infill Checkbox + CheckBox { + id: enableGradualInfillCheckBox + property alias _hovered: enableGradualInfillMouseArea.containsMouse + + anchors.top: infillSlider.bottom + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + visible: infillSteps.properties.enabled == "True" + checked: parseInt(infillSteps.properties.value) > 0 + + MouseArea { + id: enableGradualInfillMouseArea + + anchors.fill: parent + hoverEnabled: true + enabled: true + + property var previousInfillDensity: parseInt(infillDensity.properties.value) + + onClicked: { + // Set to 90% only when enabling gradual infill + if (parseInt(infillSteps.properties.value) == 0) { + previousInfillDensity = parseInt(infillDensity.properties.value) + infillDensity.setPropertyValue("value", String(90)) + } else { + infillDensity.setPropertyValue("value", String(previousInfillDensity)) + } + + infillSteps.setPropertyValue("value", (parseInt(infillSteps.properties.value) == 0) ? 5 : 0) + } + + onEntered: { + base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), + catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) + } + + onExited: { + base.hideTooltip() + } + } + + Label { + id: gradualInfillLabel + anchors.left: enableGradualInfillCheckBox.right + anchors.leftMargin: parseInt(UM.Theme.getSize("sidebar_margin").width / 2) + text: catalog.i18nc("@label", "Enable gradual") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + } + + // Infill list model for mapping icon + ListModel { - base.hideTooltip(); + id: infillModel + Component.onCompleted: + { + infillModel.append({ + percentageMin: -1, + percentageMax: 0, + stepsMin: -1, + stepsMax: 0, + icon: "hollow" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 40, + stepsMin: -1, + stepsMax: 0, + icon: "sparse" + }) + infillModel.append({ + percentageMin: 40, + percentageMax: 89, + stepsMin: -1, + stepsMax: 0, + icon: "dense" + }) + infillModel.append({ + percentageMin: 90, + percentageMax: 9999999999, + stepsMin: -1, + stepsMax: 0, + icon: "solid" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 9999999999, + stepsMin: 1, + stepsMax: 9999999999, + icon: "gradual" + }) + } } } - } - ListModel - { - id: extruderModel - Component.onCompleted: populateExtruderModel() - } + // + // Enable support + // + Label + { + id: enableSupportLabel + visible: enableSupportCheckBox.visible - //: Model used to populate the extrudelModel - Cura.ExtrudersModel - { - id: extruders - onModelChanged: populateExtruderModel() + anchors.top: infillCellRight.bottom + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.5) + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.verticalCenter: enableSupportCheckBox.verticalCenter + + text: catalog.i18nc("@label", "Generate Support"); + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + elide: Text.ElideRight + } + + CheckBox + { + id: enableSupportCheckBox + property alias _hovered: enableSupportMouseArea.containsMouse + + anchors.top: enableSupportLabel.top + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox; + enabled: base.settingsEnabled + + visible: supportEnabled.properties.enabled == "True" + checked: supportEnabled.properties.value == "True"; + + MouseArea + { + id: enableSupportMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: true + onClicked: + { + // The value is a string "True" or "False" + supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True"); + } + onEntered: + { + base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")); + } + onExited: + { + base.hideTooltip(); + } + } + } + + Label + { + id: supportExtruderLabel + visible: supportExtruderCombobox.visible + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.verticalCenter: supportExtruderCombobox.verticalCenter + text: catalog.i18nc("@label", "Support Extruder"); + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + elide: Text.ElideRight + } + + ComboBox + { + id: supportExtruderCombobox + visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1) + model: extruderModel + + property string color_override: "" // for manually setting values + property string color: // is evaluated automatically, but the first time is before extruderModel being filled + { + var current_extruder = extruderModel.get(currentIndex); + color_override = ""; + if (current_extruder === undefined) return "" + return (current_extruder.color) ? current_extruder.color : ""; + } + + textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started + + anchors.top: enableSupportCheckBox.bottom + anchors.topMargin: ((supportEnabled.properties.value === "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("sidebar_margin").height : 0 + anchors.left: infillCellRight.left + + width: UM.Theme.getSize("sidebar").width * .55 + height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 + + Behavior on height { NumberAnimation { duration: 100 } } + + style: UM.Theme.styles.combobox_color + enabled: base.settingsEnabled + property alias _hovered: supportExtruderMouseArea.containsMouse + + currentIndex: supportExtruderNr.properties !== null ? parseFloat(supportExtruderNr.properties.value) : 0 + onActivated: + { + // Send the extruder nr as a string. + supportExtruderNr.setPropertyValue("value", String(index)); + } + MouseArea + { + id: supportExtruderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + acceptedButtons: Qt.NoButton + onEntered: + { + base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), + catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + } + onExited: + { + base.hideTooltip(); + } + } + + function updateCurrentColor() + { + var current_extruder = extruderModel.get(currentIndex); + if (current_extruder !== undefined) { + supportExtruderCombobox.color_override = current_extruder.color; + } + } + + } + + Label + { + id: adhesionHelperLabel + visible: adhesionCheckBox.visible + + text: catalog.i18nc("@label", "Build Plate Adhesion") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + elide: Text.ElideRight + + anchors { + left: parent.left + leftMargin: UM.Theme.getSize("sidebar_margin").width + right: infillCellLeft.right + rightMargin: UM.Theme.getSize("sidebar_margin").width + verticalCenter: adhesionCheckBox.verticalCenter + } + } + + CheckBox + { + id: adhesionCheckBox + property alias _hovered: adhesionMouseArea.containsMouse + + anchors.top: enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.left: infillCellRight.left + + //: Setting enable printing build-plate adhesion helper checkbox + style: UM.Theme.styles.checkbox; + enabled: base.settingsEnabled + + visible: platformAdhesionType.properties.enabled == "True" + checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" + + MouseArea + { + id: adhesionMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + onClicked: + { + var adhesionType = "skirt"; + if(!parent.checked) + { + // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft + platformAdhesionType.removeFromContainer(0); + adhesionType = platformAdhesionType.properties.value; + if(adhesionType == "skirt" || adhesionType == "none") + { + // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim + adhesionType = "brim"; + } + } + platformAdhesionType.setPropertyValue("value", adhesionType); + } + onEntered: + { + base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), + catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); + } + onExited: + { + base.hideTooltip(); + } + } + } + + ListModel + { + id: extruderModel + Component.onCompleted: populateExtruderModel() + } + + //: Model used to populate the extrudelModel + Cura.ExtrudersModel + { + id: extruders + onModelChanged: populateExtruderModel() + } + + Item + { + id: tipsCell + anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 2) + anchors.left: parent.left + width: parent.width + height: tipsText.contentHeight * tipsText.lineCount + + Label + { + id: tipsText + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.top: parent.top + wrapMode: Text.WordWrap + text: catalog.i18nc("@label", "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + linkColor: UM.Theme.getColor("text_link") + onLinkActivated: Qt.openUrlExternally(link) + } + } + + UM.SettingPropertyProvider + { + id: infillExtruderNumber + containerStackId: Cura.MachineManager.activeStackId + key: "infill_extruder_nr" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: infillDensity + containerStackId: Cura.MachineManager.activeStackId + key: "infill_sparse_density" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: infillSteps + containerStackId: Cura.MachineManager.activeStackId + key: "gradual_infill_steps" + watchedProperties: ["value", "enabled"] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStackId: Cura.MachineManager.activeMachineId + key: "adhesion_type" + watchedProperties: [ "value", "enabled" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: supportEnabled + containerStackId: Cura.MachineManager.activeMachineId + key: "support_enable" + watchedProperties: [ "value", "enabled", "description" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: machineExtruderCount + containerStackId: Cura.MachineManager.activeMachineId + key: "machine_extruder_count" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: supportExtruderNr + containerStackId: Cura.MachineManager.activeMachineId + key: "support_extruder_nr" + watchedProperties: [ "value" ] + storeIndex: 0 + } } } @@ -495,124 +1016,4 @@ Item } supportExtruderCombobox.updateCurrentColor(); } - - Item - { - id: tipsCell - anchors.top: helpersCell.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height * 2 - anchors.left: parent.left - width: parent.width - height: childrenRect.height - - Text - { - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - wrapMode: Text.WordWrap - //: Tips label - text: catalog.i18nc("@label", "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - linkColor: UM.Theme.getColor("text_link") - onLinkActivated: Qt.openUrlExternally(link) - } - } - - UM.SettingPropertyProvider - { - id: infillExtruderNumber - - containerStackId: Cura.MachineManager.activeStackId - key: "infill_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - Binding - { - target: infillDensity - property: "containerStackId" - value: - { - var activeMachineId = Cura.MachineManager.activeMachineId; - if (machineExtruderCount.properties.value > 1) - { - var infillExtruderNr = parseInt(infillExtruderNumber.properties.value); - if (infillExtruderNr >= 0) - { - activeMachineId = ExtruderManager.extruderIds[infillExtruderNumber.properties.value]; - } - else if (ExtruderManager.activeExtruderStackId) - { - activeMachineId = ExtruderManager.activeExtruderStackId; - } - } - - infillSteps.containerStackId = activeMachineId; - return activeMachineId; - } - } - - UM.SettingPropertyProvider - { - id: infillDensity - - containerStackId: Cura.MachineManager.activeStackId - key: "infill_sparse_density" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: infillSteps - - containerStackId: Cura.MachineManager.activeStackId - key: "gradual_infill_steps" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: platformAdhesionType - - containerStackId: Cura.MachineManager.activeMachineId - key: "adhesion_type" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: supportEnabled - - containerStackId: Cura.MachineManager.activeMachineId - key: "support_enable" - watchedProperties: [ "value", "description" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: supportExtruderNr - - containerStackId: Cura.MachineManager.activeMachineId - key: "support_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 - } } diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 08ba0a081e..07b95777b5 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -43,7 +43,7 @@ UM.PointingRectangle { base.opacity = 0; } - Text { + Label { id: label; anchors { top: parent.top; @@ -54,6 +54,7 @@ UM.PointingRectangle { rightMargin: UM.Theme.getSize("tooltip_margins").width; } wrapMode: Text.Wrap; + textFormat: Text.RichText font: UM.Theme.getFont("default"); color: UM.Theme.getColor("tooltip_text"); } diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 0903c0555b..77ffc7f2a9 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -30,24 +30,23 @@ Item id: repeat model: UM.ToolModel { } - + width: childrenRect.width + height: childrenRect.height Button { text: model.name - iconSource: UM.Theme.getIcon(model.icon); + iconSource: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon + checkable: true + checked: model.active + enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled + style: UM.Theme.styles.tool_button - checkable: true; - checked: model.active; - enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled; - - style: UM.Theme.styles.tool_button; - onCheckedChanged: - { - if(checked) - { + onCheckedChanged: { + if (checked) { base.activeY = y } } + //Workaround since using ToolButton"s onClicked would break the binding of the checked property, instead //just catch the click so we do not trigger that behaviour. MouseArea @@ -69,11 +68,13 @@ Item } } - Item { height: UM.Theme.getSize("default_margin").height; width: 1; visible: extruders.count > 0 } + Item { height: UM.Theme.getSize("default_margin").height; width: UM.Theme.getSize("default_lining").width; visible: extruders.count > 0 } Repeater { id: extruders + width: childrenRect.width + height: childrenRect.height property var _model: Cura.ExtrudersModel { id: extrudersModel } model: _model.items.length > 1 ? _model : 0 ExtruderButton { extruder: model } diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml index 1b5792124e..c69c786d5a 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Topbar.qml @@ -1,5 +1,5 @@ // Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -16,22 +16,53 @@ Rectangle anchors.left: parent.left anchors.right: parent.right height: UM.Theme.getSize("sidebar_header").height - color: UM.Theme.getColor("sidebar_header_bar") + color: base.monitoringPrint ? UM.Theme.getColor("topbar_background_color_monitoring") : UM.Theme.getColor("topbar_background_color") property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property bool monitoringPrint: false + + // outgoing signal signal startMonitoringPrint() signal stopMonitoringPrint() + + // update monitoring status when event was triggered outside topbar + Component.onCompleted: { + startMonitoringPrint.connect(function () { + base.monitoringPrint = true + UM.Controller.disableModelRendering() + }) + stopMonitoringPrint.connect(function () { + base.monitoringPrint = false + UM.Controller.enableModelRendering() + }) + } + UM.I18nCatalog { id: catalog name:"cura" } + Image + { + id: logo + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + + source: UM.Theme.getImage("logo"); + width: UM.Theme.getSize("logo").width; + height: UM.Theme.getSize("logo").height; + + sourceSize.width: width; + sourceSize.height: height; + } + Row { - anchors.left: parent.left + anchors.left: logo.right + anchors.leftMargin: UM.Theme.getSize("topbar_logo_right_margin").width anchors.right: machineSelection.left anchors.rightMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width @@ -40,81 +71,74 @@ Rectangle { id: showSettings height: UM.Theme.getSize("sidebar_header").height - onClicked: base.stopMonitoringPrint() - iconSource: UM.Theme.getIcon("tab_settings"); + text: catalog.i18nc("@title:tab", "Prepare") + checkable: true + checked: isChecked() + exclusiveGroup: sidebarHeaderBarGroup + style: UM.Theme.styles.topbar_header_tab + + // We use a Qt.binding to re-bind the checkbox state after manually setting it + // https://stackoverflow.com/questions/38798450/qt-5-7-qml-why-are-my-checkbox-property-bindings-disappearing + onClicked: { + base.stopMonitoringPrint() + checked = Qt.binding(isChecked) + } + + function isChecked () { + return !base.monitoringPrint + } + property color overlayColor: "transparent" property string overlayIconSource: "" - text: catalog.i18nc("@title:tab","Prepare") - checkable: true - checked: !base.monitoringPrint - exclusiveGroup: sidebarHeaderBarGroup - - style: UM.Theme.styles.topbar_header_tab } Button { id: showMonitor + width: UM.Theme.getSize("topbar_button").width height: UM.Theme.getSize("sidebar_header").height - onClicked: base.startMonitoringPrint() - text: catalog.i18nc("@title:tab", "Print") - iconSource: printerConnected ? UM.Theme.getIcon("tab_monitor_with_status") : UM.Theme.getIcon("tab_monitor") - property color overlayColor: - { - if(!printerAcceptsCommands) - { - return UM.Theme.getColor("status_unknown"); - } + text: catalog.i18nc("@title:tab", "Monitor") + checkable: true + checked: isChecked() + exclusiveGroup: sidebarHeaderBarGroup + style: UM.Theme.styles.topbar_header_tab_no_overlay - if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") - { - return UM.Theme.getColor("status_busy"); - } - switch(Cura.MachineManager.printerOutputDevices[0].jobState) - { - case "printing": - case "pre_print": - case "wait_cleanup": - case "pausing": - case "resuming": - return UM.Theme.getColor("status_busy"); - case "ready": - case "": - return UM.Theme.getColor("status_ready"); - case "paused": - return UM.Theme.getColor("status_paused"); - case "error": - return UM.Theme.getColor("status_stopped"); - case "offline": - return UM.Theme.getColor("status_offline"); - default: - return UM.Theme.getColor("text_reversed"); - } + // We use a Qt.binding to re-bind the checkbox state after manually setting it + // https://stackoverflow.com/questions/38798450/qt-5-7-qml-why-are-my-checkbox-property-bindings-disappearing + onClicked: { + base.startMonitoringPrint() + checked = Qt.binding(isChecked) } - property string overlayIconSource: + + function isChecked () { + return base.monitoringPrint + } + + property string iconSource: { - if(!printerConnected) + if (!printerConnected) { - return ""; + return UM.Theme.getIcon("tab_status_unknown"); } - else if(!printerAcceptsCommands) + else if (!printerAcceptsCommands) { return UM.Theme.getIcon("tab_status_unknown"); } - if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") + if (Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") { return UM.Theme.getIcon("tab_status_busy"); } - switch(Cura.MachineManager.printerOutputDevices[0].jobState) + switch (Cura.MachineManager.printerOutputDevices[0].jobState) { case "printing": case "pre_print": - case "wait_cleanup": case "pausing": case "resuming": return UM.Theme.getIcon("tab_status_busy"); + case "wait_cleanup": + return UM.Theme.getIcon("tab_status_finished"); case "ready": case "": return UM.Theme.getIcon("tab_status_connected") @@ -122,18 +146,10 @@ Rectangle return UM.Theme.getIcon("tab_status_paused") case "error": return UM.Theme.getIcon("tab_status_stopped") - case "offline": - return UM.Theme.getIcon("tab_status_offline") default: - return "" + return UM.Theme.getIcon("tab_status_unknown") } } - - checkable: true - checked: base.monitoringPrint - exclusiveGroup: sidebarHeaderBarGroup - - style: UM.Theme.styles.topbar_header_tab } ExclusiveGroup { id: sidebarHeaderBarGroup } @@ -144,7 +160,7 @@ Rectangle id: machineSelection text: Cura.MachineManager.activeMachineName - width: UM.Theme.getSize("sidebar").width; + width: UM.Theme.getSize("sidebar").width height: UM.Theme.getSize("sidebar_header").height tooltip: Cura.MachineManager.activeMachineName @@ -159,28 +175,18 @@ Rectangle if(control.pressed) { return UM.Theme.getColor("sidebar_header_active"); - } else if(control.hovered) + } + else if(control.hovered) { return UM.Theme.getColor("sidebar_header_hover"); - } else + } + else { return UM.Theme.getColor("sidebar_header_bar"); } } Behavior on color { ColorAnimation { duration: 50; } } - Rectangle - { - id: underline; - - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - height: UM.Theme.getSize("sidebar_header_highlight").height - color: UM.Theme.getColor("sidebar_header_highlight_hover") - visible: control.hovered || control.pressed - } - UM.RecolorImage { id: downArrow @@ -191,17 +197,17 @@ Rectangle height: UM.Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: width - color: UM.Theme.getColor("text_reversed") + color: UM.Theme.getColor("text_emphasis") source: UM.Theme.getIcon("arrow_bottom") } Label { id: sidebarComboBoxLabel - color: UM.Theme.getColor("text_reversed") + color: UM.Theme.getColor("sidebar_header_text_active") text: control.text; elide: Text.ElideRight; anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("default_margin").width * 2 anchors.right: downArrow.left; anchors.rightMargin: control.rightMargin; anchors.verticalCenter: parent.verticalCenter; @@ -213,4 +219,72 @@ Rectangle menu: PrinterMenu { } } + + ComboBox + { + id: viewModeButton + + anchors { + verticalCenter: parent.verticalCenter + right: parent.right + rightMargin: UM.Theme.getSize("sidebar").width + UM.Theme.getSize("default_margin").width + } + + style: UM.Theme.styles.combobox + visible: !base.monitoringPrint + + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags () { + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) { + model.getItem(i).active = (i == currentIndex) + } + } + + // get the index of the active model item on start + function getActiveIndex () { + for (var i = 0; i < model.rowCount(); i++) { + if (model.getItem(i).active) { + return i + } + } + return 0 + } + + // set the active index + function setActiveIndex (index) { + UM.Controller.setActiveView(index) + // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here + } + + onCurrentIndexChanged: viewModeButton.setActiveIndex(model.getItem(currentIndex).id) + currentIndex: getActiveIndex() + + // watch the active view proxy for changes made from the menu item + Connections + { + target: UM.ActiveView + onActiveViewChanged: viewModeButton.updateItemActiveFlags() + } + } + + Loader + { + id: view_panel + + anchors.top: viewModeButton.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: viewModeButton.right + + property var buttonTarget: Qt.point(viewModeButton.x + viewModeButton.width / 2, viewModeButton.y + viewModeButton.height / 2) + + height: childrenRect.height + width: childrenRect.width + + source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : ""; + } + } diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/WorkspaceSummaryDialog.qml index 5f8b7cce51..d5cc416f39 100644 --- a/resources/qml/WorkspaceSummaryDialog.qml +++ b/resources/qml/WorkspaceSummaryDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -13,10 +13,12 @@ UM.Dialog { title: catalog.i18nc("@title:window", "Save Project") - width: 500 - height: 400 + minimumWidth: 500 * screenScaleFactor + minimumHeight: 400 * screenScaleFactor + width: minimumWidth + height: minimumHeight - property int spacerHeight: 10 + property int spacerHeight: 10 * screenScaleFactor property bool dontShowAgain: true @@ -63,7 +65,7 @@ UM.Dialog Column { anchors.fill: parent - spacing: 2 + spacing: 2 * screenScaleFactor Label { id: titleLabel @@ -230,11 +232,11 @@ UM.Dialog } } - CheckBox { id: dontShowAgainCheckbox - anchors.bottom: parent.bottom + anchors.bottom: cancel_button.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height anchors.left: parent.left text: catalog.i18nc("@action:label", "Don't show project summary on save again") diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index b002ef1e4d..32550d86a5 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -6,9 +6,9 @@ definition = abax_pri3 [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg index 38036404d9..2007785719 100644 --- a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg index 02d564e8cb..dba0a0460f 100644 --- a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index 23baec151b..11892a6223 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -6,9 +6,9 @@ definition = abax_pri5 [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg index d7996f9578..852efe699e 100644 --- a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg index a0cc6dc00c..244d544c80 100644 --- a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index 2208ad2fb5..a2d802a3ba 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -6,9 +6,9 @@ definition = abax_titan [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_titan/atitan_pla_high.inst.cfg b/resources/quality/abax_titan/atitan_pla_high.inst.cfg index 91a3bffea6..7ee8c35133 100644 --- a/resources/quality/abax_titan/atitan_pla_high.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_high.inst.cfg @@ -7,7 +7,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg index 4ff47e9c65..6c40914566 100644 --- a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..3454f8b3ad --- /dev/null +++ b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_pla_175 +setting_version = 4 +weight = -1 +global_quality = True + +[values] +material_print_temperature = =default_material_print_temperature + 15 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.3 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 60 + diff --git a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg new file mode 100644 index 0000000000..b5ac4cb6a1 --- /dev/null +++ b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg @@ -0,0 +1,26 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_pla_175 +setting_version = 4 +weight = 1 +global_quality = True + +[values] +acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature + 15 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.1 +top_thickness = =layer_height * 7 +bottom_thickness = =layer_height * 5 +speed_print = 40 +layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..c5a93e65c1 --- /dev/null +++ b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_pla_175 +setting_version = 4 +weight = 0 +global_quality = True + +[values] +material_print_temperature = =default_material_print_temperature + 15 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.2 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 50 \ No newline at end of file diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg index f6f461f73d..418855a9ba 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg index a86f734c8a..e95ef08e22 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg index 53e36c4a88..524f5ba12a 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg index 1422663537..24ffb19d6f 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg index edd337bb88..1281a3afdd 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_abs_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg index 78493a273b..a8d19deef7 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_abs_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg index 0b7d6dd8d8..87cc855f44 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg index 393a419cdc..4ca2598051 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg index 7595ae104e..42eb705f11 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg index f899082e9c..538fe91b76 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg index f44b33b1d1..11760b139f 100644 --- a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = coarse global_quality = True -weight = 0 -setting_version = 2 +weight = -3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg index 6b0a379eb2..c654dba598 100644 --- a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = extra coarse global_quality = True -weight = 0 -setting_version = 2 +weight = -4 +setting_version = 4 [values] layer_height = 0.6 diff --git a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg index 944f8a1d97..393a5f3b39 100644 --- a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = high global_quality = True -weight = 0 -setting_version = 2 +weight = 1 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg index c0d1a301f3..c09493ba10 100644 --- a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg index 24610a3332..eae4e82cd3 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg index af419719b1..0c47b18196 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg index cfc9c0e331..14f1ea4662 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg index e26fcaa037..bd13b358ff 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg index d7d1d8aa4d..ca864692c3 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_hips_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg index 68c282fd7d..3cadef4fdd 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_hips_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg index 33289e0cf2..07839c8a9a 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg index 1388e9bee1..acc9db0891 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg index f592894188..b1f2f17d41 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg index 73c1d7010b..bcfa1c2e30 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg index 8108a48c53..2cd50efeb2 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg index 89114b1a79..7a7d767ea3 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg index 5a35735d11..5684c89e23 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_nylon_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg index 4a20f2e0e7..8d97e9ac5f 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_nylon_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg index 15e3834090..946f8de34d 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg index 34c0d66899..80f390c254 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg index 3de6c83fb8..2f401556d4 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg index 0361b789ba..225b0ec5cf 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg index 94b3fe9278..53e61a81a2 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg index 11723cc92b..e7b179dfe1 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg index 070f73fa0e..baa3a1fdce 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pc_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg index 26662accf5..81f939f800 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pc_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg index 64a137abf5..41b2cc70f0 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg index a30c4ea884..e5ae6aff1d 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg index b8d2da9500..c5c4be6f4a 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg index 11e55362ae..6d12bdc402 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg index 85560ff953..43dda5007c 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg index d1fa4d40ca..094dc33263 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg index f728848461..da9e4ad3dd 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_petg_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg index 851b893a96..607ba778a1 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_petg_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg index 9c9aa56dab..3010d95dab 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg index 2e7d86c378..fbf8fac67f 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg index 5f53ffe133..9d8130602e 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg index 311d287cdc..98401dbf42 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.25_mm -weight = 2 -setting_version = 2 +weight = 0 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg index e73581cdd6..2eda5103d7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg index dfa47d2ebb..f3d3820ff7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.4_mm -weight = 2 -setting_version = 2 +weight = 0 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg index a17454ba87..d2cf708336 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = coarse material = generic_pla_175_cartesio_0.8_mm -weight = 3 -setting_version = 2 +weight = -3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg index 3f4db2d40a..888d8f91a7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = extra coarse material = generic_pla_175_cartesio_0.8_mm -weight = 4 -setting_version = 2 +weight = -4 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg index 5de8fd3aa8..558514db98 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg index 1071a139f9..9c508e4a1f 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg @@ -7,8 +7,8 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.8_mm -weight = 2 -setting_version = 2 +weight = 0 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg index 222a3d7438..fcbf4913de 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.25_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg index e074b1f1b7..3893421df0 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.25_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg index a0df1df247..5876db1e2e 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.4_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg index 1e69f794a8..c977e79a5c 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.4_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg index 2ac1aff331..8c36d8e7ed 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pva_175_cartesio_0.8_mm weight = 3 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg index 14602d4e95..c2b19868f6 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pva_175_cartesio_0.8_mm weight = 4 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg index b21d8b85f6..5bd285285a 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.8_mm weight = 1 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg index 61eb2f89d9..a11bff95e1 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.8_mm weight = 2 -setting_version = 2 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/coarse.inst.cfg b/resources/quality/coarse.inst.cfg index bdeda58626..133ffc8951 100644 --- a/resources/quality/coarse.inst.cfg +++ b/resources/quality/coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse global_quality = True weight = -3 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg new file mode 100644 index 0000000000..43643b6b92 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = Fast Quality (beta) + +[metadata] +type = quality +setting_version = 4 +material = generic_abs_175 +quality_type = fast +weight = -1 + +[values] +adhesion_type = raft +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 + diff --git a/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg new file mode 100644 index 0000000000..99e47bc9cb --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = High Quality (beta) + +[metadata] +type = quality +setting_version = 4 +material = generic_abs_175 +quality_type = high +weight = 1 + +[values] +adhesion_type = raft +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 + diff --git a/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg new file mode 100644 index 0000000000..a2aa2be769 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = deltacomb +name = Normal Quality (beta) + +[metadata] +type = quality +setting_version = 4 +material = generic_abs_175 +quality_type = normal +weight = 0 + +[values] +adhesion_type = raft +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 diff --git a/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg new file mode 100644 index 0000000000..fac23939cf --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = Fast Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = fast +weight = -1 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.20 +layer_height_0 = 0.15 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random diff --git a/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg new file mode 100644 index 0000000000..d594126474 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = High Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = high +weight = 1 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.10 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random diff --git a/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg new file mode 100644 index 0000000000..76716fc16d --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg @@ -0,0 +1,58 @@ +[general] +version = 2 +name = Normal Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = normal +weight = 0 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.15 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random + diff --git a/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg new file mode 100644 index 0000000000..9783cb11cc --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = deltacomb +name = Fast Quality + +[metadata] +type = quality +setting_version = 4 +material = generic_pla_175 +quality_type = fast +weight = -1 + +[values] +adhesion_type = skirt +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 + diff --git a/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg new file mode 100644 index 0000000000..9513e98b6a --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = High Quality + +[metadata] +type = quality +setting_version = 4 +material = generic_pla_175 +quality_type = high +weight = 1 + +[values] +adhesion_type = skirt +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 +material_print_temperature_layer_0 = =default_material_print_temperature + 5 + diff --git a/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg new file mode 100644 index 0000000000..d88f5909f0 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +definition = deltacomb +name = Normal Quality + +[metadata] +type = quality +setting_version = 4 +material = generic_pla_175 +quality_type = normal +weight = 0 + +[values] +adhesion_type = skirt +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 diff --git a/resources/quality/draft.inst.cfg b/resources/quality/draft.inst.cfg index 15df2f2f08..a155c8f2e1 100644 --- a/resources/quality/draft.inst.cfg +++ b/resources/quality/draft.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/extra_coarse.inst.cfg b/resources/quality/extra_coarse.inst.cfg index 921cfbb981..ce28e54721 100644 --- a/resources/quality/extra_coarse.inst.cfg +++ b/resources/quality/extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = Extra coarse global_quality = True weight = -4 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.6 diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg new file mode 100644 index 0000000000..245997a27e --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = Fast Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_abs +quality_type = fast +weight = -1 + +[values] +adhesion_type = raft +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 + diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg new file mode 100644 index 0000000000..26300eec7d --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = High Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_abs +quality_type = high +weight = 1 + +[values] +adhesion_type = raft +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 + diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg new file mode 100644 index 0000000000..53d20c8cbc --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = Normal Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_abs +quality_type = normal +weight = 0 + +[values] +adhesion_type = raft +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 + diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg new file mode 100644 index 0000000000..22bbcbeaeb --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = Fast Quality +definition = fabtotum + +[metadata] +type = quality +material = fabtotum_nylon +quality_type = fast +weight = -1 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.20 +layer_height_0 = 0.15 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random \ No newline at end of file diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg new file mode 100644 index 0000000000..a625bd715f --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = High Quality +definition = fabtotum + +[metadata] +type = quality +material = fabtotum_nylon +quality_type = high +weight = 1 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.10 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random \ No newline at end of file diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg new file mode 100644 index 0000000000..b05d30c5c6 --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg @@ -0,0 +1,58 @@ +[general] +version = 2 +name = Normal Quality +definition = fabtotum + +[metadata] +type = quality +material = fabtotum_nylon +quality_type = normal +weight = 0 +setting_version = 4 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.15 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random + diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg new file mode 100644 index 0000000000..1f1c93961b --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = Fast Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_pla +quality_type = fast +weight = -1 + +[values] +adhesion_type = skirt +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 + diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg new file mode 100644 index 0000000000..9cd067703c --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = High Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_pla +quality_type = high +weight = 1 + +[values] +adhesion_type = skirt +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 + diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg new file mode 100644 index 0000000000..5b5125c4e5 --- /dev/null +++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = fabtotum +name = Normal Quality + +[metadata] +type = quality +setting_version = 4 +material = fabtotum_pla +quality_type = normal +weight = 0 + +[values] +adhesion_type = skirt +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 + diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg index 695d500198..d4333c90da 100644 --- a/resources/quality/high.inst.cfg +++ b/resources/quality/high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 1 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg index 2c0dc434ee..e36286c6ae 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg index f9327873dd..3240bad98b 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg index 16ec2d9f1e..2790a5a742 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg index 3302402233..14f141f0bf 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg index 8ed78edfed..842ec618e0 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg index 845f03873d..17e085d84d 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg index b587b64fef..a4b44f47f6 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg index c4a4b4f465..962b3c9ad4 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg index 7f2c4ce316..952b16ecf8 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg index 43bb14577b..bd70d105a4 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg index 253a3a2dc3..a9d0679612 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 2 quality_type = ultrahigh -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg index 8152b9a0c8..097e1fc76a 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 2 quality_type = ultrahigh -setting_version = 2 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg index d2b7968813..5401ec7bd6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -3 material = generic_abs quality_type = coarse -setting_version = 2 +setting_version = 4 [values] layer_height = 0.35 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg index eba5bd3e6d..aea8fc9535 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 1 material = generic_abs quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg index 01972c482c..24adbd9f6c 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 0 material = generic_abs quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg index c51dd5794e..98d2475633 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -2 material = generic_abs quality_type = draft -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg index 2c0eb0b51e..ab2e9dabbc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -1 material = generic_abs quality_type = low -setting_version = 2 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg index 1959c251c2..f868ab40fc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = -3 material = generic_pla quality_type = coarse -setting_version = 2 +setting_version = 4 [values] layer_height = 0.35 adhesion_type = skirt -speed_print = 70 -speed_infill = 60 -speed_layer_0 = 20 -speed_wall_0 = 30 -speed_wall_x = 50 -speed_topbottom = 30 -speed_travel = 120 +speed_print = 60 material_print_temperature = 214 material_bed_temperature = 60 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg index ea5fc11349..e907f7ccaf 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg @@ -8,19 +8,13 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.06 adhesion_type = skirt -speed_print = 40 -speed_infill = 50 -speed_layer_0 = 15 -speed_wall_0 = 20 -speed_wall_x = 40 -speed_topbottom = 20 -speed_travel = 120 +speed_print = 30 material_print_temperature = 214 material_bed_temperature = 60 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg index 1f2d52affc..841023d532 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = 0 material = generic_pla quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 adhesion_type = skirt -speed_print = 50 -speed_infill = 60 -speed_layer_0 = 20 -speed_wall_0 = 25 -speed_wall_x = 45 -speed_topbottom = 30 -speed_travel = 120 +speed_print = 40 material_print_temperature = 214 material_bed_temperature = 60 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg index 97dcabd8e5..ca874c6bce 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = -2 material = generic_pla quality_type = draft -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 adhesion_type = skirt -speed_print = 70 -speed_infill = 60 -speed_layer_0 = 20 -speed_wall_0 = 30 -speed_wall_x = 50 -speed_topbottom = 30 -speed_travel = 120 +speed_print = 60 material_print_temperature = 214 material_bed_temperature = 60 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg index 5ad4183058..fcfbe72b24 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = -1 material = generic_pla quality_type = low -setting_version = 2 +setting_version = 4 [values] layer_height = 0.15 adhesion_type = skirt -speed_print = 60 -speed_infill = 50 -speed_layer_0 = 15 -speed_wall_0 = 20 -speed_wall_x = 40 -speed_topbottom = 20 -speed_travel = 120 +speed_print = 50 material_print_temperature = 214 material_bed_temperature = 60 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg index 537ee829b8..009af9b87b 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = -3 material = generic_pla quality_type = coarse -setting_version = 2 +setting_version = 4 [values] layer_height = 0.35 -adhesion_type = skirt +adhesion_type = raft -speed_print = 70 -speed_infill = 60 -speed_layer_0 = 20 -speed_wall_0 = 30 -speed_wall_x = 50 -speed_topbottom = 30 -speed_travel = 120 +speed_print = 60 material_print_temperature = 214 material_diameter = 1.75 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg index a01298ce58..447e3b012d 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg index fc03449351..80b2375108 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 0 material = generic_pla quality_type = normal -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg index 6b9fb3acce..e30c52f4e6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg @@ -8,19 +8,13 @@ type = quality weight = -2 material = generic_pla quality_type = draft -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 -adhesion_type = skirt +adhesion_type = raft -speed_print = 70 -speed_infill = 60 -speed_layer_0 = 20 -speed_wall_0 = 30 -speed_wall_x = 50 -speed_topbottom = 30 -speed_travel = 120 +speed_print = 60 material_print_temperature = 214 material_diameter = 1.75 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg index 70e16a9bea..31bdaa51bc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -1 material = generic_pla quality_type = low -setting_version = 2 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/low.inst.cfg b/resources/quality/low.inst.cfg index 466d741d5f..e92490722d 100644 --- a/resources/quality/low.inst.cfg +++ b/resources/quality/low.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = low global_quality = True weight = -1 -setting_version = 2 +setting_version = 4 [values] infill_sparse_density = 10 diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg index 0b4cec96d9..9fb7b238cd 100644 --- a/resources/quality/normal.inst.cfg +++ b/resources/quality/normal.inst.cfg @@ -8,6 +8,6 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 2 +setting_version = 4 [values] diff --git a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg index d5e02e6c71..ae8a377116 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg index a3c4913e5f..07ab7e364b 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 2 quality_type = extra_high -setting_version = 2 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg index a9c52b0c27..e0d2f7d818 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/ultimaker2/um2_draft.inst.cfg b/resources/quality/ultimaker2/um2_draft.inst.cfg new file mode 100644 index 0000000000..4fe3f51e20 --- /dev/null +++ b/resources/quality/ultimaker2/um2_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 2 +name = Draft Quality +definition = ultimaker2 + +[metadata] +type = quality +quality_type = draft +weight = -2 +setting_version = 4 + +[values] +layer_height = 0.2 diff --git a/resources/quality/ultimaker2/um2_high.inst.cfg b/resources/quality/ultimaker2/um2_high.inst.cfg new file mode 100644 index 0000000000..96941beed2 --- /dev/null +++ b/resources/quality/ultimaker2/um2_high.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 2 +name = Extra Fine +definition = ultimaker2 + +[metadata] +type = quality +quality_type = high +weight = 1 +setting_version = 4 + +[values] +layer_height = 0.06 +speed_topbottom = 15 +speed_infill = 80 diff --git a/resources/quality/ultimaker2/um2_low.inst.cfg b/resources/quality/ultimaker2/um2_low.inst.cfg new file mode 100644 index 0000000000..832962984c --- /dev/null +++ b/resources/quality/ultimaker2/um2_low.inst.cfg @@ -0,0 +1,20 @@ +[general] +version = 2 +name = Low Quality +definition = ultimaker2 + +[metadata] +type = quality +quality_type = low +weight = -1 +setting_version = 4 + +[values] +infill_sparse_density = 10 +layer_height = 0.15 +cool_min_layer_time = 3 +speed_wall_0 = 40 +speed_wall_x = 80 +speed_infill = 100 +wall_thickness = 1 +speed_topbottom = 30 diff --git a/resources/quality/ultimaker2/um2_normal.inst.cfg b/resources/quality/ultimaker2/um2_normal.inst.cfg new file mode 100644 index 0000000000..ea804feb80 --- /dev/null +++ b/resources/quality/ultimaker2/um2_normal.inst.cfg @@ -0,0 +1,12 @@ +[general] +version = 2 +name = Fine +definition = ultimaker2 + +[metadata] +type = quality +quality_type = normal +weight = 0 +setting_version = 4 + +[values] diff --git a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg index 1a7bbc79a9..638a1a9384 100644 --- a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg @@ -8,14 +8,15 @@ type = quality material = generic_pla_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 0.88 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 30 -speed_layer_0 = =round(speed_print * 30 / 30) cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +top_bottom_thickness = 0.72 +wall_thickness = 0.88 + diff --git a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg index 4618a37d2f..9f4dfc0b5d 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg @@ -8,17 +8,18 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 0.7 -top_bottom_thickness = 0.75 -infill_sparse_density = 18 -speed_print = 60 -speed_layer_0 = =round(speed_print * 30 / 60) -speed_wall = 50 -speed_topbottom = 30 -speed_travel = 150 cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 18 +layer_height = 0.15 +speed_layer_0 = =round(speed_print * 30 / 60) +speed_print = 60 +speed_topbottom = 30 +speed_travel = 150 +speed_wall = 50 +top_bottom_thickness = 0.75 +wall_thickness = 0.7 + diff --git a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg index e5239e9a46..7bf51b0211 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg @@ -8,15 +8,16 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 1.05 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_print = 50 +speed_topbottom = 20 +top_bottom_thickness = 0.72 +wall_thickness = 1.05 + diff --git a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg index 2b4a47b99c..3c6f40e0bc 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg @@ -8,15 +8,16 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 20 +layer_height = 0.1 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_print = 50 +speed_topbottom = 20 +top_bottom_thickness = 0.8 +wall_thickness = 1.05 + diff --git a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg index b6b2f1392f..ef79e30b74 100644 --- a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg @@ -8,17 +8,18 @@ material = generic_pla_ultimaker2_plus_0.6_mm type = quality weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 1.59 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 55 -speed_layer_0 = =round(speed_print * 30 / 55) -speed_wall = 40 -speed_wall_0 = 25 -speed_topbottom = 20 cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 20 +layer_height = 0.15 +speed_layer_0 = =round(speed_print * 30 / 55) +speed_print = 55 +speed_topbottom = 20 +speed_wall = 40 +speed_wall_0 = 25 +top_bottom_thickness = 1.2 +wall_thickness = 1.59 + diff --git a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg index 23616e6b39..42418ea392 100644 --- a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg @@ -8,15 +8,16 @@ material = generic_pla_ultimaker2_plus_0.8_mm type = quality weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.2 -wall_thickness = 2.1 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 40 -speed_layer_0 = =round(speed_print * 30 / 40) -speed_wall_0 = 25 cool_min_layer_time = 5 cool_min_speed = 10 +infill_sparse_density = 20 +layer_height = 0.2 +speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 +speed_wall_0 = 25 +top_bottom_thickness = 1.2 +wall_thickness = 2.1 + diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg index 20fa84d691..50a4076de2 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg @@ -8,18 +8,17 @@ type = quality material = generic_abs_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 0.88 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 30 -speed_layer_0 = =round(speed_print * 30 / 30) -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.2 -cool_min_speed = 10 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 - +cool_min_speed = 10 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +top_bottom_thickness = 0.72 +wall_thickness = 0.88 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg index 88eed9f9e8..9d1bcf6ff5 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg @@ -8,20 +8,20 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 0.7 -top_bottom_thickness = 0.75 +cool_fan_speed_min = =cool_fan_speed * 0.2 +cool_min_layer_time = 3 +cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 10 infill_sparse_density = 18 -speed_print = 55 +layer_height = 0.15 speed_layer_0 = =round(speed_print * 30 / 55) -speed_wall = 40 +speed_print = 55 speed_topbottom = 30 speed_travel = 150 -cool_min_layer_time = 3 -cool_fan_speed_min = =cool_fan_speed * 0.2 -cool_min_speed = 10 -cool_min_layer_time_fan_speed_max = 15 +speed_wall = 40 +top_bottom_thickness = 0.75 +wall_thickness = 0.7 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg index 3af57d6a09..84a5557434 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg @@ -8,18 +8,18 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 1.05 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -speed_wall = 30 -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.2 -cool_min_speed = 10 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 10 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall = 30 +top_bottom_thickness = 0.72 +wall_thickness = 1.05 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg index ca57521636..efc749ad8c 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg @@ -8,17 +8,18 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -speed_wall = 30 -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.2 -cool_min_speed = 10 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 10 +infill_sparse_density = 20 +layer_height = 0.1 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall = 30 +top_bottom_thickness = 0.8 +wall_thickness = 1.05 + diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg index b9232c850c..eb706c5762 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg @@ -8,19 +8,18 @@ type = quality material = generic_abs_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 1.59 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 40 -speed_layer_0 = =round(speed_print * 30 / 40) -speed_infill = 55 -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.5 -cool_min_speed = 20 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 20 - +cool_min_speed = 20 +infill_sparse_density = 20 +layer_height = 0.15 +speed_infill = 55 +speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 +top_bottom_thickness = 1.2 +wall_thickness = 1.59 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg index b3c4ed84c1..2dba5a9304 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg @@ -8,17 +8,17 @@ type = quality material = generic_abs_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.2 -wall_thickness = 2.1 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 40 -speed_layer_0 = =round(speed_print * 30 / 40) -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.5 -cool_min_speed = 15 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 25 +cool_min_speed = 15 +infill_sparse_density = 20 +layer_height = 0.2 +speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 +top_bottom_thickness = 1.2 +wall_thickness = 2.1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index c8f82ea938..8e87e0e7b6 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -8,17 +8,17 @@ type = quality material = generic_cpe_ultimaker2_plus_0.25_mm weight = -1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 0.88 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 30 -speed_layer_0 = =round(speed_print * 30 / 30) -cool_min_layer_time = 2 cool_fan_speed_min = =cool_fan_speed * 0.2 -cool_min_speed = 15 +cool_min_layer_time = 2 cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 15 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +top_bottom_thickness = 0.72 +wall_thickness = 0.88 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg index e3bb676205..e311df00a8 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg @@ -8,20 +8,19 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 0.7 -top_bottom_thickness = 0.75 -infill_sparse_density = 18 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -speed_wall = 40 -speed_travel = 150 -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.8 -cool_min_speed = 10 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 - +cool_min_speed = 10 +infill_sparse_density = 18 +layer_height = 0.15 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_travel = 150 +speed_wall = 40 +top_bottom_thickness = 0.75 +wall_thickness = 0.7 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg index 73c613fd85..685b7798fc 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg @@ -8,17 +8,18 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.06 -wall_thickness = 1.05 -top_bottom_thickness = 0.72 -infill_sparse_density = 22 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -speed_wall = 30 -cool_min_layer_time = 2 cool_fan_speed_min = =cool_fan_speed * 0.8 -cool_min_speed = 15 +cool_min_layer_time = 2 cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 15 +infill_sparse_density = 22 +layer_height = 0.06 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall = 30 +top_bottom_thickness = 0.72 +wall_thickness = 1.05 + diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg index fa708fea78..aadb4195f3 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg @@ -8,18 +8,18 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -speed_wall = 30 -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.8 -cool_min_speed = 10 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 +cool_min_speed = 10 +infill_sparse_density = 20 +layer_height = 0.1 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall = 30 +top_bottom_thickness = 0.8 +wall_thickness = 1.05 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg index 268fb9571f..332033368f 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg @@ -8,16 +8,17 @@ type = quality material = generic_cpe_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.15 -wall_thickness = 1.59 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 40 -speed_layer_0 = =round(speed_print * 30 / 40) -cool_min_layer_time = 5 cool_fan_speed_min = =cool_fan_speed * 0.8 -cool_min_speed = 8 +cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 20 +cool_min_speed = 8 +infill_sparse_density = 20 +layer_height = 0.15 +speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 +top_bottom_thickness = 1.2 +wall_thickness = 1.59 + diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg index 585680b387..e4fcae8aa1 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg @@ -8,16 +8,17 @@ type = quality material = generic_cpe_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -layer_height = 0.2 -wall_thickness = 2.1 -top_bottom_thickness = 1.2 -infill_sparse_density = 20 -speed_print = 40 -speed_layer_0 = =round(speed_print * 30 / 40) -cool_min_layer_time = 3 cool_fan_speed_min = =cool_fan_speed * 0.8 -cool_min_speed = 8 +cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 25 +cool_min_speed = 8 +infill_sparse_density = 20 +layer_height = 0.2 +speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 +top_bottom_thickness = 1.2 +wall_thickness = 2.1 + diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg index 25e1190d16..55af936a89 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg @@ -8,36 +8,36 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] -speed_wall_x = 25 -support_z_distance = 0.26 -raft_interface_line_spacing = 1 -cool_min_speed = 8 -cool_fan_speed = 50 -wall_thickness = 1.14 -raft_margin = 15 -speed_layer_0 = 15 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 0.8 -top_bottom_thickness = 1.5 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -raft_surface_line_width = 0.38 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -speed_wall_0 = 20 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.22 -cool_min_layer_time = 3 -speed_print = 25 +layer_height = 0.2 line_width = 0.38 -support_angle = 45 +raft_airgap = 0.37 raft_base_line_spacing = 1.6 raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +raft_surface_line_width = 0.38 +speed_layer_0 = 15 +speed_print = 25 +speed_topbottom = 20 +speed_wall_0 = 20 +speed_wall_x = 25 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 1.5 +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg index f0dab0b80b..eb0ca5e81f 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg @@ -8,36 +8,36 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -speed_wall_x = 30 -support_z_distance = 0.26 -raft_interface_line_spacing = 1 -cool_min_speed = 8 -cool_fan_speed = 50 -wall_thickness = 1.14 -raft_margin = 15 -speed_layer_0 = 15 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.15 -raft_interface_line_width = 0.8 -top_bottom_thickness = 1.5 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -raft_surface_line_width = 0.38 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -speed_wall_0 = 20 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.22 -cool_min_layer_time = 3 -speed_print = 35 +layer_height = 0.15 line_width = 0.38 -support_angle = 45 +raft_airgap = 0.37 raft_base_line_spacing = 1.6 raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +raft_surface_line_width = 0.38 +speed_layer_0 = 15 +speed_print = 35 +speed_topbottom = 20 +speed_wall_0 = 20 +speed_wall_x = 30 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 1.5 +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg index 09f540395b..b324d867bc 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg @@ -8,40 +8,40 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -support_z_distance = 0.22 -speed_wall_x = 25 -cool_min_speed = 8 -cool_fan_speed = 45 -raft_surface_thickness = 0.2 -raft_surface_line_width = 0.57 -raft_interface_line_spacing = 1.4 -raft_margin = 15 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.3 -raft_base_line_spacing = 2.4 -raft_interface_line_width = 1.2 -speed_wall_0 = 20 -cool_fan_speed_min = =cool_fan_speed * 25 / 45 -wall_thickness = 1.14 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -infill_sparse_density = 35 -top_bottom_thickness = 0.75 adhesion_type = raft -line_width = 0.57 -layer_0_z_overlap = 0.22 -raft_base_line_width = 1.2 -speed_print = 25 -speed_layer_0 = =round(speed_print * 30 / 50) -support_line_distance = 2.85 -support_angle = 45 +cool_fan_speed = 45 +cool_fan_speed_min = =cool_fan_speed * 25 / 45 cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 +infill_sparse_density = 35 +layer_0_z_overlap = 0.22 +layer_height = 0.3 +line_width = 0.57 +raft_airgap = 0.37 +raft_base_line_spacing = 2.4 +raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.57 +raft_surface_thickness = 0.2 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_print = 25 +speed_topbottom = 20 +speed_travel = 150 +speed_wall_0 = 20 +speed_wall_x = 25 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_line_distance = 2.85 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = 0.22 +top_bottom_thickness = 0.75 +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg index 055177e14e..c8c7576d30 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg @@ -8,40 +8,40 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -support_z_distance = 0.22 -speed_wall_x = 35 -cool_min_speed = 8 -cool_fan_speed = 45 -raft_surface_thickness = 0.2 -raft_surface_line_width = 0.57 -raft_interface_line_spacing = 1.4 -raft_margin = 15 -speed_layer_0 = 30 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.22 -raft_base_line_spacing = 2.4 -raft_interface_line_width = 1.2 -speed_wall_0 = 30 -cool_fan_speed_min = =cool_fan_speed * 25 / 45 -wall_thickness = 1.14 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -infill_sparse_density = 35 -top_bottom_thickness = 0.75 adhesion_type = raft -line_width = 0.57 -layer_0_z_overlap = 0.22 -raft_base_line_width = 1.2 -speed_print = 35 -support_line_distance = 2.85 -support_angle = 45 +cool_fan_speed = 45 +cool_fan_speed_min = =cool_fan_speed * 25 / 45 cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 +infill_sparse_density = 35 +layer_0_z_overlap = 0.22 +layer_height = 0.22 +line_width = 0.57 +raft_airgap = 0.37 +raft_base_line_spacing = 2.4 +raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.57 +raft_surface_thickness = 0.2 +speed_layer_0 = 30 +speed_print = 35 +speed_topbottom = 20 +speed_travel = 150 +speed_wall_0 = 30 +speed_wall_x = 35 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_line_distance = 2.85 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = 0.22 +top_bottom_thickness = 0.75 +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg index 795867c59c..28353f729d 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg @@ -8,35 +8,35 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.26 -speed_wall_x = 25 -cool_fan_speed = 50 -raft_surface_thickness = 0.2 -raft_surface_line_width = 0.7 -raft_interface_line_spacing = 1.8 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.3 -raft_interface_line_width = 1.6 -top_bottom_thickness = 1.2 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -brim_line_count = 10 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 10 +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.22 +layer_height = 0.3 +raft_airgap = 0.37 raft_base_line_width = 1.6 -speed_print = 25 +raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 speed_layer_0 = =round(speed_print * 30 / 25) +speed_print = 25 +speed_topbottom = 20 speed_wall_0 = 20 +speed_wall_x = 25 support_angle = 45 -cool_min_layer_time = 3 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 1.2 wall_thickness = 2.1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg index a40b30730d..f74db21b91 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg @@ -8,35 +8,35 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.26 -speed_wall_x = 30 -cool_fan_speed = 50 -raft_surface_thickness = 0.2 -raft_surface_line_width = 0.7 -raft_interface_line_spacing = 1.8 -raft_airgap = 0.37 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 1.6 -top_bottom_thickness = 1.2 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -brim_line_count = 10 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 10 +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.22 +layer_height = 0.2 +raft_airgap = 0.37 raft_base_line_width = 1.6 -speed_print = 30 +raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +speed_topbottom = 20 speed_wall_0 = 20 +speed_wall_x = 30 support_angle = 45 -cool_min_layer_time = 3 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 1.2 wall_thickness = 2.1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg index 569ddb69bf..b8924423e2 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg @@ -8,37 +8,37 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -cool_fan_speed = 60 -support_z_distance = 0.45 -speed_wall_x = 40 -cool_min_speed = 15 -raft_surface_line_width = 0.2 -raft_interface_line_width = 0.5 -brim_line_count = 8 -raft_margin = 15 -speed_layer_0 = 30 -raft_airgap = 0.15 -infill_overlap = 5 -layer_height = 0.06 -raft_interface_line_spacing = 0.7 -speed_support = 40 -top_bottom_thickness = 1.2 -cool_fan_speed_min = =cool_fan_speed * 35 / 60 -wall_thickness = 1 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -speed_wall_0 = 20 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed = 60 +cool_fan_speed_min = =cool_fan_speed * 35 / 60 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 25 layer_0_z_overlap = 0.1 +layer_height = 0.06 +raft_airgap = 0.15 raft_base_line_width = 0.5 +raft_interface_line_spacing = 0.7 +raft_interface_line_width = 0.5 +raft_margin = 15 +raft_surface_line_width = 0.2 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 speed_print = 40 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 20 +speed_wall_x = 40 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg index 740205d102..323fa51a8d 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg @@ -8,37 +8,37 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -cool_fan_speed = 60 -support_z_distance = 0.45 -speed_wall_x = 40 -cool_min_speed = 15 -raft_surface_line_width = 0.2 -raft_interface_line_width = 0.5 -brim_line_count = 8 -raft_margin = 15 -speed_layer_0 = 30 -raft_airgap = 0.15 -infill_overlap = 5 -layer_height = 0.1 -raft_interface_line_spacing = 0.7 -speed_support = 40 -top_bottom_thickness = 1.2 -cool_fan_speed_min = =cool_fan_speed * 35 / 60 -wall_thickness = 1 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -speed_wall_0 = 20 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed = 60 +cool_fan_speed_min = =cool_fan_speed * 35 / 60 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 25 layer_0_z_overlap = 0.1 +layer_height = 0.1 +raft_airgap = 0.15 raft_base_line_width = 0.5 +raft_interface_line_spacing = 0.7 +raft_interface_line_width = 0.5 +raft_margin = 15 +raft_surface_line_width = 0.2 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 speed_print = 40 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 20 +speed_wall_x = 40 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg index 143f8c1a71..7628cd0be1 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg @@ -8,36 +8,36 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -support_z_distance = 0.45 -raft_interface_line_spacing = 1 -cool_min_speed = 15 -raft_surface_thickness = 0.15 -raft_surface_line_width = 0.5 -speed_layer_0 = 30 -raft_airgap = 0.57 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 0.8 -top_bottom_thickness = 0.75 -cool_fan_speed_min = =cool_fan_speed * 0.35 -wall_thickness = 1.06 -support_pattern = lines -support_infill_rate = 25 -speed_topbottom = 20 -support_enable = True -speed_wall = 40 -raft_margin = 15 adhesion_type = raft +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_layer_time = 3 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.22 +layer_height = 0.2 +raft_airgap = 0.57 raft_base_line_spacing = 1.6 -speed_print = 45 -support_angle = 45 -cool_min_layer_time = 3 raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +raft_surface_line_width = 0.5 +raft_surface_thickness = 0.15 +speed_layer_0 = 30 +speed_print = 45 +speed_topbottom = 20 +speed_travel = 150 +speed_wall = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 0.75 +wall_thickness = 1.06 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg index d406a8fa7f..a97a4c4e8f 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg @@ -8,35 +8,35 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -speed_travel = 150 -support_z_distance = 0.45 -raft_interface_line_spacing = 1 -cool_min_speed = 15 -raft_surface_thickness = 0.15 -raft_surface_line_width = 0.5 -speed_layer_0 = 30 -raft_airgap = 0.57 -infill_overlap = 5 -layer_height = 0.15 -raft_interface_line_width = 0.8 -top_bottom_thickness = 0.75 -cool_fan_speed_min = =cool_fan_speed * 0.35 -wall_thickness = 1.06 -support_pattern = lines -support_infill_rate = 25 -support_enable = True -speed_wall = 40 -raft_margin = 15 adhesion_type = raft +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_layer_time = 3 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.22 +layer_height = 0.15 +raft_airgap = 0.57 raft_base_line_spacing = 1.6 -speed_print = 45 -support_angle = 45 -cool_min_layer_time = 3 raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +raft_surface_line_width = 0.5 +raft_surface_thickness = 0.15 +speed_layer_0 = 30 +speed_print = 45 +speed_travel = 150 +speed_wall = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_xy_distance = 0.6 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 0.75 +wall_thickness = 1.06 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg index f3f9fddfbe..0cd7bbdbfd 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg @@ -8,40 +8,41 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.7 -speed_travel = 150 -speed_wall_x = 40 -cool_min_speed = 15 -support_top_distance = 0.55 -raft_surface_line_width = 0.6 -raft_surface_thickness = 0.15 -brim_line_count = 8 -speed_layer_0 = 30 -raft_interface_line_spacing = 1.4 -infill_overlap = 5 -layer_height = 0.3 -raft_interface_line_width = 1.2 -speed_support = 40 -speed_wall_0 = 15 -cool_fan_speed_min = =cool_fan_speed * 0.35 -wall_thickness = 1.2 -support_pattern = lines -support_infill_rate = 25 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -support_bottom_distance = 0.55 -raft_margin = 15 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 35 layer_0_z_overlap = 0.22 -top_bottom_thickness = 1.2 -speed_print = 55 +layer_height = 0.3 raft_airgap = 0.44 -support_angle = 45 raft_base_line_spacing = 2.4 raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.6 +raft_surface_thickness = 0.15 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 +speed_print = 55 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 +speed_wall_x = 40 +support_angle = 45 +support_bottom_distance = 0.55 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_top_distance = 0.55 +support_xy_distance = 0.7 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg index 6810970eb5..d5e0025913 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg @@ -8,39 +8,39 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.7 -speed_travel = 150 -support_z_distance = 0.55 -speed_wall_x = 40 -cool_min_speed = 15 -raft_surface_line_width = 0.6 -raft_surface_thickness = 0.15 -brim_line_count = 8 -speed_layer_0 = 30 -raft_interface_line_spacing = 1.4 -infill_overlap = 5 -layer_height = 0.15 -raft_interface_line_width = 1.2 -speed_support = 40 -speed_wall_0 = 15 -cool_fan_speed_min = =cool_fan_speed * 0.35 -wall_thickness = 1.2 -support_pattern = lines -support_infill_rate = 25 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -raft_margin = 15 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 35 layer_0_z_overlap = 0.22 -top_bottom_thickness = 1.2 -speed_print = 55 +layer_height = 0.15 raft_airgap = 0.44 -support_angle = 45 raft_base_line_spacing = 2.4 raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.6 +raft_surface_thickness = 0.15 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 +speed_print = 55 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 +speed_wall_x = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_xy_distance = 0.7 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg index aaba4b8a50..f653a90f95 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg @@ -8,40 +8,40 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.75 -speed_travel = 150 -support_z_distance = 0.5 -speed_wall_x = 40 -cool_min_speed = 15 -brim_line_count = 8 -support_top_distance = 0.5 -raft_surface_thickness = 0.2 -wall_thickness = 2.4 -raft_margin = 15 -speed_layer_0 = 30 -raft_airgap = 0.44 -infill_overlap = 5 -layer_height = 0.3 -raft_interface_line_width = 1.6 -speed_support = 40 -speed_wall_0 = 15 -cool_fan_speed_min = =cool_fan_speed * 0.35 -raft_surface_line_width = 0.7 -support_pattern = lines -support_infill_rate = 25 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -support_bottom_distance = 0.65 -top_bottom_thickness = 1.2 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.25 +layer_height = 0.3 +raft_airgap = 0.44 raft_base_line_width = 1.6 -speed_print = 55 -support_angle = 45 raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 +speed_print = 55 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 +speed_wall_x = 40 +support_angle = 45 +support_bottom_distance = 0.65 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_top_distance = 0.5 +support_xy_distance = 0.75 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 2.4 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg index fae14c8266..144c8e74ac 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg @@ -8,40 +8,40 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.75 -speed_travel = 150 -support_z_distance = 0.5 -speed_wall_x = 40 -cool_min_speed = 15 -brim_line_count = 8 -support_top_distance = 0.5 -raft_surface_thickness = 0.2 -wall_thickness = 2.4 -raft_margin = 15 -raft_airgap = 0.44 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 1.6 -speed_support = 40 -speed_wall_0 = 15 -cool_fan_speed_min = =cool_fan_speed * 0.35 -raft_surface_line_width = 0.7 -support_pattern = lines -support_infill_rate = 25 -speed_topbottom = 35 -support_enable = True -retraction_hop_enabled = 0.2 -support_bottom_distance = 0.65 -top_bottom_thickness = 1.2 adhesion_type = raft +brim_line_count = 8 +cool_fan_speed_min = =cool_fan_speed * 0.35 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.25 +layer_height = 0.2 +raft_airgap = 0.44 raft_base_line_width = 1.6 -speed_print = 55 -speed_layer_0 = =round(speed_print * 30 / 55) -support_angle = 45 raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 +retraction_hop_enabled = 0.2 +speed_layer_0 = =round(speed_print * 30 / 55) +speed_print = 55 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 +speed_wall_x = 40 +support_angle = 45 +support_bottom_distance = 0.65 +support_enable = True +support_infill_rate = 25 +support_pattern = lines +support_top_distance = 0.5 +support_xy_distance = 0.75 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 2.4 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg index 97b5446d10..d38f2af4d3 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg @@ -8,30 +8,31 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.19 -raft_interface_line_spacing = 0.7 -cool_min_speed = 15 -cool_fan_speed = 50 -raft_surface_line_width = 0.2 -wall_thickness = 0.88 -raft_airgap = 0.25 -infill_overlap = 5 -layer_height = 0.06 -raft_interface_line_width = 0.5 -cool_fan_speed_min = 0 -brim_line_count = 32 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 32 +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 2 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 25 layer_0_z_overlap = 0.2 -cool_min_layer_time = 2 -speed_print = 30 -speed_layer_0 = =round(speed_print * 30 / 30) +layer_height = 0.06 +raft_airgap = 0.25 raft_base_line_spacing = 1 raft_base_line_width = 0.5 +raft_interface_line_spacing = 0.7 +raft_interface_line_width = 0.5 +raft_margin = 15 +raft_surface_line_width = 0.2 +speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.19 +wall_thickness = 0.88 + diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg index 57101394b3..aa176f67a2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg @@ -8,30 +8,31 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.19 -raft_interface_line_spacing = 0.7 -cool_min_speed = 15 -cool_fan_speed = 50 -raft_surface_line_width = 0.2 -wall_thickness = 0.88 -raft_airgap = 0.25 -infill_overlap = 5 -layer_height = 0.1 -raft_interface_line_width = 0.5 -cool_fan_speed_min = 0 -brim_line_count = 32 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 32 +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 2 +cool_min_speed = 15 +infill_overlap = 5 infill_sparse_density = 25 layer_0_z_overlap = 0.2 -cool_min_layer_time = 2 -speed_print = 30 -speed_layer_0 = =round(speed_print * 30 / 30) +layer_height = 0.1 +raft_airgap = 0.25 raft_base_line_spacing = 1 -raft_base_line_width = 0.5 \ No newline at end of file +raft_base_line_width = 0.5 +raft_interface_line_spacing = 0.7 +raft_interface_line_width = 0.5 +raft_margin = 15 +raft_surface_line_width = 0.2 +speed_layer_0 = =round(speed_print * 30 / 30) +speed_print = 30 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.19 +wall_thickness = 0.88 + diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg index 334ca6fde2..0408ead05e 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg @@ -8,31 +8,32 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -speed_wall_x = 30 -support_z_distance = 0.19 -raft_airgap = 0.35 -cool_min_speed = 8 -cool_fan_speed = 50 -raft_interface_line_spacing = 1 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 0.8 -speed_wall_0 = 20 -cool_fan_speed_min = 0 -wall_thickness = 1.2 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.3 -cool_min_layer_time = 3 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -support_angle = 45 +layer_height = 0.2 +raft_airgap = 0.35 raft_base_line_spacing = 1.6 -raft_base_line_width = 0.8 \ No newline at end of file +raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall_0 = 20 +speed_wall_x = 30 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.19 +wall_thickness = 1.2 + diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg index 0d815cfdc3..ed430f10c0 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg @@ -8,31 +8,32 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -speed_wall_x = 30 -support_z_distance = 0.19 -raft_airgap = 0.35 -cool_min_speed = 8 -cool_fan_speed = 50 -raft_interface_line_spacing = 1 -infill_overlap = 5 -layer_height = 0.1 -raft_interface_line_width = 0.8 -speed_wall_0 = 20 -cool_fan_speed_min = 0 -wall_thickness = 1.2 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 30 layer_0_z_overlap = 0.3 -cool_min_layer_time = 3 -speed_print = 45 -speed_layer_0 = =round(speed_print * 30 / 45) -support_angle = 45 +layer_height = 0.1 +raft_airgap = 0.35 raft_base_line_spacing = 1.6 -raft_base_line_width = 0.8 \ No newline at end of file +raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.8 +raft_margin = 15 +speed_layer_0 = =round(speed_print * 30 / 45) +speed_print = 45 +speed_wall_0 = 20 +speed_wall_x = 30 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.19 +wall_thickness = 1.2 + diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg index 0e5cacbeac..b6c3a66c0b 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg @@ -8,38 +8,38 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -speed_travel = 150 -support_z_distance = 0.21 -speed_wall_x = 40 -cool_min_speed = 8 -cool_fan_speed = 50 -raft_surface_thickness = 0.15 -raft_surface_line_width = 0.6 -raft_interface_line_spacing = 1.4 -speed_layer_0 = 30 -raft_airgap = 0.52 -infill_overlap = 5 -layer_height = 0.3 -raft_interface_line_width = 1.2 -raft_margin = 15 -cool_fan_speed_min = 0 -wall_thickness = 1.06 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -top_bottom_thickness = 0.75 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 35 layer_0_z_overlap = 0.22 +layer_height = 0.3 +raft_airgap = 0.52 raft_base_line_spacing = 2.4 -speed_print = 45 -support_line_distance = 3.5333 -speed_wall_0 = 30 -support_angle = 45 -cool_min_layer_time = 3 raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.6 +raft_surface_thickness = 0.15 +speed_layer_0 = 30 +speed_print = 45 +speed_topbottom = 20 +speed_travel = 150 +speed_wall_0 = 30 +speed_wall_x = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_line_distance = 3.5333 +support_pattern = lines +support_z_distance = 0.21 +top_bottom_thickness = 0.75 +wall_thickness = 1.06 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg index 3c7f0ef212..0dfb533f56 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg @@ -8,38 +8,38 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -speed_travel = 150 -support_z_distance = 0.21 -speed_wall_x = 40 -cool_min_speed = 8 -cool_fan_speed = 50 -raft_surface_thickness = 0.15 -raft_surface_line_width = 0.6 -raft_interface_line_spacing = 1.4 -speed_layer_0 = 30 -raft_airgap = 0.52 -infill_overlap = 5 -layer_height = 0.15 -raft_interface_line_width = 1.2 -raft_margin = 15 -cool_fan_speed_min = 0 -wall_thickness = 1.06 -support_pattern = lines -support_infill_rate = 20 -speed_topbottom = 20 -support_enable = True -top_bottom_thickness = 0.75 adhesion_type = raft +cool_fan_speed = 50 +cool_fan_speed_min = 0 +cool_min_layer_time = 3 +cool_min_speed = 8 +infill_overlap = 5 infill_sparse_density = 35 layer_0_z_overlap = 0.22 +layer_height = 0.15 +raft_airgap = 0.52 raft_base_line_spacing = 2.4 -speed_print = 45 -support_line_distance = 3.5333 -speed_wall_0 = 30 -support_angle = 45 -cool_min_layer_time = 3 raft_base_line_width = 1.2 +raft_interface_line_spacing = 1.4 +raft_interface_line_width = 1.2 +raft_margin = 15 +raft_surface_line_width = 0.6 +raft_surface_thickness = 0.15 +speed_layer_0 = 30 +speed_print = 45 +speed_topbottom = 20 +speed_travel = 150 +speed_wall_0 = 30 +speed_wall_x = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 20 +support_line_distance = 3.5333 +support_pattern = lines +support_z_distance = 0.21 +top_bottom_thickness = 0.75 +wall_thickness = 1.06 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg index 280dafa128..3eee23006f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg @@ -8,32 +8,32 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.26 -raft_airgap = 0.47 -cool_fan_speed = 50 -raft_surface_line_width = 0.7 -raft_surface_thickness = 0.2 -brim_line_count = 10 -raft_interface_line_spacing = 1.8 -infill_overlap = 5 -layer_height = 0.5 -raft_interface_line_width = 1.6 -top_bottom_thickness = 2.0 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -wall_thickness = 2.1 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 10 +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.22 +layer_height = 0.5 +raft_airgap = 0.47 raft_base_line_width = 1.6 -speed_print = 40 +raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 support_angle = 45 -cool_min_layer_time = 3 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 2.0 +wall_thickness = 2.1 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg index e79d3339f2..40da82e6bf 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg @@ -8,32 +8,32 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_z_distance = 0.26 -raft_airgap = 0.47 -cool_fan_speed = 50 -raft_surface_line_width = 0.7 -raft_surface_thickness = 0.2 -brim_line_count = 10 -raft_interface_line_spacing = 1.8 -infill_overlap = 5 -layer_height = 0.2 -raft_interface_line_width = 1.6 -top_bottom_thickness = 1.2 -cool_fan_speed_min = =cool_fan_speed * 25 / 50 -wall_thickness = 2.1 -support_pattern = lines -support_infill_rate = 20 -support_enable = True -raft_margin = 15 adhesion_type = raft +brim_line_count = 10 +cool_fan_speed = 50 +cool_fan_speed_min = =cool_fan_speed * 25 / 50 +cool_min_layer_time = 3 +infill_overlap = 5 infill_sparse_density = 40 layer_0_z_overlap = 0.22 +layer_height = 0.2 +raft_airgap = 0.47 raft_base_line_width = 1.6 -speed_print = 40 +raft_interface_line_spacing = 1.8 +raft_interface_line_width = 1.6 +raft_margin = 15 +raft_surface_line_width = 0.7 +raft_surface_thickness = 0.2 speed_layer_0 = =round(speed_print * 30 / 40) +speed_print = 40 support_angle = 45 -cool_min_layer_time = 3 +support_enable = True +support_infill_rate = 20 +support_pattern = lines +support_z_distance = 0.26 +top_bottom_thickness = 1.2 +wall_thickness = 2.1 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg deleted file mode 100644 index 0aa08a65b8..0000000000 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker2_plus - -[metadata] -type = quality -material = generic_pp_ultimaker2_plus_0.25_mm -weight = 0 -quality_type = normal -setting_version = 2 -supported = False - -[values] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index 558e314581..6f4e366209 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -64,10 +64,8 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) -wall_thickness = 0.76 \ No newline at end of file +wall_thickness = 0.76 + diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index 668899184f..c7224f475f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -63,10 +63,8 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) -wall_thickness = 0.76 \ No newline at end of file +wall_thickness = 0.76 + diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index f3db281962..203db9883e 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -65,11 +65,9 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.1 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) -wall_thickness = 1.14 \ No newline at end of file +wall_thickness = 1.14 + diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index ffefbcf4c7..64dfbc9281 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -65,11 +65,9 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.1 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) -wall_thickness = 1.14 \ No newline at end of file +wall_thickness = 1.14 + diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 380c54cbc4..f6d56242dd 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.8_mm weight = -2 quality_type = fast -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -65,11 +65,9 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.5 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) -wall_thickness = 1.52 \ No newline at end of file +wall_thickness = 1.52 + diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 84a95eab17..ecb3e3da4a 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.8_mm weight = -3 quality_type = draft -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -65,11 +65,9 @@ support_top_distance = =support_z_distance support_xy_distance = =wall_line_width_0 * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height * 2 -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.5 travel_avoid_distance = 3 wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) -wall_thickness = 1.52 \ No newline at end of file +wall_thickness = 1.52 + diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg index afa7c89fd5..b1cb56a543 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg @@ -8,36 +8,36 @@ type = quality material = generic_tpu_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.6 -cool_min_speed = 15 -support_infill_rate = 25 -speed_wall_0 = 15 -layer_0_z_overlap = 0.1 +adhesion_type = brim +brim_line_count = 8 +cool_fan_speed = 60 +cool_fan_speed_min = =cool_fan_speed * 35 / 60 cool_min_layer_time = 7 +cool_min_speed = 15 +infill_sparse_density = 10 +layer_0_z_overlap = 0.1 +layer_height = 0.06 +raft_airgap = 0.2 +raft_base_line_spacing = 1 +raft_interface_line_spacing = 1 +raft_interface_line_width = 0.2 +raft_surface_line_width = 0.2 +retraction_hop_enabled = 0.2 speed_layer_0 = 30 speed_print = 40 -wall_thickness = 0.88 -support_enable = True -speed_topbottom = 35 -raft_surface_line_width = 0.2 -raft_base_line_spacing = 1 -top_bottom_thickness = 1.2 -layer_height = 0.06 -support_angle = 45 -infill_sparse_density = 10 -cool_fan_speed = 60 -speed_travel = 150 speed_support = 40 -support_z_distance = =layer_height * 2 -cool_fan_speed_min = =cool_fan_speed * 35 / 60 -brim_line_count = 8 -retraction_hop_enabled = 0.2 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 speed_wall_x = 38 -raft_airgap = 0.2 -raft_interface_line_spacing = 1 -adhesion_type = brim -raft_interface_line_width = 0.2 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_xy_distance = 0.6 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 0.88 diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg index 205cc25285..80cc92fe64 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg @@ -8,32 +8,33 @@ type = quality material = generic_tpu_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.65 -speed_travel = 150 -support_z_distance = =layer_height * 2 -speed_wall_x = 35 -cool_min_speed = 15 -cool_fan_speed = 60 -retraction_hop_enabled = 0.2 -brim_line_count = 8 -speed_layer_0 = 30 -raft_interface_line_spacing = 1 -raft_base_line_spacing = 2 -speed_support = 40 -raft_margin = 12 -cool_fan_speed_min = =cool_fan_speed * 35 / 60 -wall_thickness = 1.05 -support_infill_rate = 25 -speed_topbottom = 35 -support_enable = True -speed_wall_0 = 20 adhesion_type = brim -infill_sparse_density = 10 -top_bottom_thickness = 1.2 -speed_print = 40 -support_angle = 45 +brim_line_count = 8 +cool_fan_speed = 60 +cool_fan_speed_min = =cool_fan_speed * 35 / 60 cool_min_layer_time = 10 +cool_min_speed = 15 +infill_sparse_density = 10 +raft_base_line_spacing = 2 raft_base_line_width = 0.8 +raft_interface_line_spacing = 1 +raft_margin = 12 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 +speed_print = 40 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 20 +speed_wall_x = 35 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_xy_distance = 0.65 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1.05 + diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg index ab696e84bb..9796adada9 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg @@ -8,38 +8,38 @@ type = quality material = generic_tpu_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 2 +setting_version = 4 [values] -support_xy_distance = 0.7 -raft_base_line_width = 0.6 -cool_min_speed = 15 -line_width = 0.57 -support_infill_rate = 25 -speed_wall_0 = 15 -wall_thickness = 1.14 -raft_base_line_spacing = 1.2 -speed_layer_0 = 30 -raft_margin = 15 -speed_travel = 150 -raft_surface_line_width = 0.5 -layer_height = 0.12 -raft_interface_line_width = 0.57 -speed_print = 45 -top_bottom_thickness = 1.2 -speed_topbottom = 35 -layer_0_z_overlap = 0.12 -support_angle = 45 -infill_sparse_density = 10 -cool_fan_speed = 60 -speed_support = 40 -support_z_distance = =layer_height * 2 -cool_fan_speed_min = =cool_fan_speed * 35 / 60 -brim_line_count = 8 -retraction_hop_enabled = 0.2 -speed_wall_x = 40 -support_enable = True -raft_interface_line_spacing = 1.2 adhesion_type = brim +brim_line_count = 8 +cool_fan_speed = 60 +cool_fan_speed_min = =cool_fan_speed * 35 / 60 +cool_min_speed = 15 +infill_sparse_density = 10 +layer_0_z_overlap = 0.12 +layer_height = 0.12 +line_width = 0.57 raft_airgap = 0.24 +raft_base_line_spacing = 1.2 +raft_base_line_width = 0.6 +raft_interface_line_spacing = 1.2 +raft_interface_line_width = 0.57 +raft_margin = 15 +raft_surface_line_width = 0.5 +retraction_hop_enabled = 0.2 +speed_layer_0 = 30 +speed_print = 45 +speed_support = 40 +speed_topbottom = 35 +speed_travel = 150 +speed_wall_0 = 15 +speed_wall_x = 40 +support_angle = 45 +support_enable = True +support_infill_rate = 25 +support_xy_distance = 0.7 +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..5d798d556e --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_abs_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +cool_fan_speed = 40 +infill_overlap = 15 +material_final_print_temperature = =material_print_temperature - 5 +prime_tower_enable = True +prime_tower_purge_volume = 0.6 +prime_tower_size = 12 +prime_tower_wall_thickness = 0.9 +retraction_prime_speed = 25 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +wall_thickness = 0.92 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..a68b43fa2a --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg @@ -0,0 +1,22 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_cpe_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0 +prime_tower_size = 12 +prime_tower_wall_thickness = 0.9 +retraction_extrusion_window = 0.5 +speed_infill = 40 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +top_bottom_thickness = 0.8 +wall_thickness = 0.92 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..fda770266e --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_nylon_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +cool_min_layer_time_fan_speed_max = 20 +cool_min_speed = 12 +infill_line_width = =round(line_width * 0.5 / 0.4, 2) +infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 2.0 +ooze_shield_angle = 40 +raft_acceleration = =acceleration_layer_0 +raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3) +raft_jerk = =jerk_layer_0 +raft_margin = 10 +raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) +retraction_extrusion_window = =retraction_amount +retraction_min_travel = =line_width * 2 +skin_overlap = 50 +speed_print = 70 +speed_topbottom = =math.ceil(speed_print * 30 / 70) +speed_wall = =math.ceil(speed_print * 30 / 70) +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 +wall_line_width_x = =wall_line_width + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..43b8f95677 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -0,0 +1,53 @@ +[general] +version = 2 +name = Fine - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pc_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + layer_height +cool_fan_speed_max = 50 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 5 +infill_line_width = =line_width +infill_pattern = triangles +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +machine_min_cool_heat_time_window = 15 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +retraction_count_max = 80 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 15 +skin_overlap = 30 +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 25 +speed_travel = 250 +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_pattern = lines +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = 1.2 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..d3772448cf --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pla_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +brim_width = 8 +cool_fan_full_at_height = =layer_height_0 +cool_min_speed = 10 +infill_overlap = 10 +infill_pattern = grid +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 2.0 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_print_temperature = 190 +retraction_extrusion_window = =retraction_amount +retraction_hop = 0.2 +skin_overlap = 5 +speed_layer_0 = 30 +speed_print = 30 +speed_travel_layer_0 = 120 +speed_wall = 25 +speed_wall_0 = 20 +top_bottom_thickness = 0.72 +travel_avoid_distance = 0.4 +wall_0_inset = 0.015 +wall_0_wipe_dist = 0.25 +wall_thickness = 0.7 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..7f138f979d --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -0,0 +1,60 @@ +[general] +version = 2 +name = Fine - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pp_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +brim_width = 10 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_pattern = tetrahedral +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +line_width = =machine_nozzle_size * 0.92 +machine_min_cool_heat_time_window = 15 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_initial_print_temperature = 200 +material_print_temperature = 205 +material_print_temperature_layer_0 = 208 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 6 +retraction_extra_prime_amount = 0.2 +retraction_extrusion_window = 6.5 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 13 +speed_equalize_flow_enabled = True +speed_layer_0 = 15 +speed_print = 25 +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 + diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index e9a2667261..13dca72c27 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index 96099347bd..10fa10c726 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_abs_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 47c3602277..02f2327468 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index dcb29b48c6..fccb6a35f5 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg new file mode 100644 index 0000000000..980da522c8 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -0,0 +1,38 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_bam_ultimaker3_AA_0.4 +weight = -2 +setting_version = 4 + +[values] +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =230 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +skin_overlap = 20 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 50 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg new file mode 100644 index 0000000000..86b584c9af --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -0,0 +1,38 @@ +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_bam_ultimaker3_AA_0.4 +weight = -1 +setting_version = 4 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +speed_print = 80 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 30 / 80) +speed_wall = =math.ceil(speed_print * 40 / 80) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..b9f35fcfa0 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -0,0 +1,36 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_bam_ultimaker3_AA_0.4 +weight = 0 +setting_version = 4 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +cool_min_speed = 7 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +skin_overlap = 10 +speed_layer_0 = 20 +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 2ae57b6333..dfdb1ca8a7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -39,7 +39,7 @@ retraction_hop_only_when_collides = True skin_overlap = 20 speed_layer_0 = 20 speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 65 / 50) +speed_topbottom = =math.ceil(speed_print * 40 / 50) speed_travel = 250 speed_wall = =math.ceil(speed_print * 50 / 50) speed_wall_0 = =math.ceil(speed_wall * 40 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index 6fbc466b61..93b371a627 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -39,7 +39,7 @@ retraction_hop_only_when_collides = True skin_overlap = 20 speed_layer_0 = 20 speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 55 / 45) +speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_travel = 250 speed_wall = =math.ceil(speed_print * 45 / 45) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index 58719ca037..93647f9f44 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 89dc4e5df5..2886ef2229 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg index 354efee6ef..5e3daf5a9e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg index ceab77fc4f..e48f83994d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg index edfe91c8a1..fd0a8cd18d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg index 1487d476f0..56c997eb15 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg index 6d33e4298a..15283a3242 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg index 189d8efbae..c063725e82 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_nylon_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg index 70a72beb50..218e1e50e1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg index 324300d11f..3b96939ac9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index a88e38b560..f8b4dd067c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pc_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index 242cca1ecf..1db3935180 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pc_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index 51b025c7c6..0f9e9b15b0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 23449bcda2..26a3136069 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index 46f043ce65..8c6e7bd782 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index 10a04ed47b..db441015a8 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pla_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 27d4b20815..61807490e9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_ultimaker3_AA_0.4 weight = 1 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index 94e82ede57..d7254b854d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 4228c718c6..3fe25e563a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pp_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 850ead9120..4c92c7a14b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pp_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index e68f13364a..db55956497 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pp_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 2ce06b2de2..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.4 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 7450e7112d..6116dc1bda 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.4 weight = -2 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index 2d07cd8b31..1da5d0fec8 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_tpu_ultimaker3_AA_0.4 weight = -1 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index 1d8467482f..1938e1c26c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_tpu_ultimaker3_AA_0.4 weight = 0 -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg index 41dee1edf4..7c16e6e8ee 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] line_width = =machine_nozzle_size * 0.875 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg index d757ca32a0..728b4c868f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_abs_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg index 9f5fddf21b..98ae70c568 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_abs_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index 80b80978d1..0a05e9aafd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 @@ -20,6 +20,7 @@ machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 +prime_tower_enable = True retraction_combing = off retraction_hop = 0.1 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 8a16b26682..82efb6a57b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index bd5b8972b1..ff375b6e49 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index d920d76417..b4d7035b8d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 480d63a698..b5ccc38534 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_cpe_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index c1d48f2555..33ae223526 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_cpe_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index ec8ba37518..43ec77453c 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 90f04b1e8a..5b8626e8c2 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_nylon_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index 7980541f32..0b115ada4b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_nylon_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index 18c82b1e2c..0b666d2e0b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pc_ultimaker3_AA_0.8 weight = 0 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 328c5d9f1d..de212df4af 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pc_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 27ecd7343f..3e0c669eeb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pc_ultimaker3_AA_0.8 weight = -1 -setting_version = 2 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index c528a2523f..3c4303e017 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index f0f375c7ee..5509f42aae 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pla_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index aabdf1213d..645c3fe3ef 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pla_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 8b85d6d7fb..f46c3cfb8f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -8,14 +8,13 @@ type = quality quality_type = draft material = generic_pp_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 25 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index f1042df045..ac8087d0c4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -8,14 +8,13 @@ type = quality quality_type = superdraft material = generic_pp_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] brim_width = 25 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index 2ddb591127..daf60f24e6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -8,14 +8,13 @@ type = quality quality_type = verydraft material = generic_pp_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] brim_width = 25 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 9da6595ec8..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg deleted file mode 100644 index ddecefa938..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = superdraft -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 97deea6740..726ab82867 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.8 weight = -2 -setting_version = 2 +setting_version = 4 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 infill_before_walls = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 7871f330cc..269725daa9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = superdraft material = generic_tpu_ultimaker3_AA_0.8 weight = -4 -setting_version = 2 +setting_version = 4 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 infill_before_walls = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index 9da9e3945f..dd1737433a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = verydraft material = generic_tpu_ultimaker3_AA_0.8 weight = -3 -setting_version = 2 +setting_version = 4 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 -expand_skins_expand_distance = =line_width * 2 -expand_upper_skins = True +top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 infill_before_walls = True diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg deleted file mode 100644 index c1271f68e8..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_abs_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg deleted file mode 100644 index 3d4843a07a..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_abs_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg deleted file mode 100644 index 355b9fd390..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg deleted file mode 100644 index 3b5c086e13..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg deleted file mode 100644 index 695185da03..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg deleted file mode 100644 index 4cd4dd4c18..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg deleted file mode 100644 index 29f550fe59..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_nylon_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg deleted file mode 100644 index c40458ecbe..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_nylon_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg deleted file mode 100644 index 78c4413c5e..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pc_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg deleted file mode 100644 index 1f0a724e55..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pla_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg deleted file mode 100644 index 6c84ab05a6..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pla_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index 4c0c97c3d3..c87f744932 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.4 -setting_version = 2 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index 65f06d51ac..23fa6d61d8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ weight = -1 type = quality quality_type = fast material = generic_pva_ultimaker3_BB_0.4 -setting_version = 2 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index 154371470d..3ba82d65c6 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -8,7 +8,7 @@ weight = 1 type = quality quality_type = high material = generic_pva_ultimaker3_BB_0.4 -setting_version = 2 +setting_version = 4 [values] material_standby_temperature = 100 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index 9818f508e6..a709d5613b 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ weight = 0 type = quality quality_type = normal material = generic_pva_ultimaker3_BB_0.4 -setting_version = 2 +setting_version = 4 [values] material_standby_temperature = 100 diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg deleted file mode 100644 index f71989d851..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_tpu_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg deleted file mode 100644 index 13734f3947..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_tpu_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg deleted file mode 100644 index 55026ddcbc..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_abs_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg deleted file mode 100644 index 2b2aa5acd2..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_abs_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg deleted file mode 100644 index 1165d6ab2c..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg deleted file mode 100644 index 7a309e4abc..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg deleted file mode 100644 index 97fc8408d0..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg deleted file mode 100644 index 543ce9fcc6..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg deleted file mode 100644 index 3030decc57..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_nylon_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg deleted file mode 100644 index ff2b83a685..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_nylon_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg deleted file mode 100644 index 30c55627fa..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pc_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg deleted file mode 100644 index 7496e68bf6..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pc_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg deleted file mode 100644 index 2acbc9713a..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pla_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg deleted file mode 100644 index 2c64ccef98..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pla_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg index 677d13d9d9..4cb296b4c7 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 2 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg index 8e28e39ef7..5249517844 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft weight = -4 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg index e816446f6d..c34e19b134 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft weight = -3 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg deleted file mode 100644 index 17e2bf7ba1..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_tpu_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg deleted file mode 100644 index 1369ee6d41..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_tpu_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 2 - -[values] diff --git a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg index e564a6ee56..b56775a987 100644 --- a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg index 435d8cc84f..12f1183364 100644 --- a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast global_quality = True weight = -1 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg index 5917a4bd41..cf6e6c45e0 100644 --- a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 0 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg index fd16913dcf..fef2328923 100644 --- a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg index a2ed2c55ff..be9acd4394 100644 --- a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft global_quality = True weight = -4 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg index 0e12596a8d..e2c828fc2d 100644 --- a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft global_quality = True weight = -3 -setting_version = 2 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/shaders/grid.shader b/resources/shaders/grid.shader index 74eed544fd..07cb1a01a6 100644 --- a/resources/shaders/grid.shader +++ b/resources/shaders/grid.shader @@ -14,6 +14,7 @@ vertex = } fragment = + uniform lowp vec4 u_plateColor; uniform lowp vec4 u_gridColor0; uniform lowp vec4 u_gridColor1; @@ -21,10 +22,19 @@ fragment = void main() { - if (mod(floor(v_uvs.x / 10.0) - floor(v_uvs.y / 10.0), 2.0) < 1.0) - gl_FragColor = u_gridColor0; - else - gl_FragColor = u_gridColor1; + vec2 coord = v_uvs.xy; + + // Compute anti-aliased world-space minor grid lines + vec2 minorGrid = abs(fract(coord - 0.5) - 0.5) / fwidth(coord); + float minorLine = min(minorGrid.x, minorGrid.y); + + vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); + + // Compute anti-aliased world-space major grid lines + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); + float majorLine = min(majorGrid.x, majorGrid.y); + + gl_FragColor = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); } vertex41core = @@ -44,6 +54,7 @@ vertex41core = fragment41core = #version 410 + uniform lowp vec4 u_plateColor; uniform lowp vec4 u_gridColor0; uniform lowp vec4 u_gridColor1; @@ -52,13 +63,23 @@ fragment41core = void main() { - if (mod(floor(v_uvs.x / 10.0) - floor(v_uvs.y / 10.0), 2.0) < 1.0) - frag_color = u_gridColor0; - else - frag_color = u_gridColor1; + vec2 coord = v_uvs.xy; + + // Compute anti-aliased world-space minor grid lines + vec2 minorGrid = abs(fract(coord - 0.5) - 0.5) / fwidth(coord); + float minorLine = min(minorGrid.x, minorGrid.y); + + vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); + + // Compute anti-aliased world-space major grid lines + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); + float majorLine = min(majorGrid.x, majorGrid.y); + + frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); } [defaults] +u_plateColor = [1.0, 1.0, 1.0, 1.0] u_gridColor0 = [0.96, 0.96, 0.96, 1.0] u_gridColor1 = [0.8, 0.8, 0.8, 1.0] diff --git a/resources/themes/cura-dark/icons/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg new file mode 100644 index 0000000000..d20218bc00 --- /dev/null +++ b/resources/themes/cura-dark/icons/tab_status_unknown.svg @@ -0,0 +1,13 @@ + + + + Unknown + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-dark/images/logo.svg b/resources/themes/cura-dark/images/logo.svg new file mode 100644 index 0000000000..92ffe4ca0c --- /dev/null +++ b/resources/themes/cura-dark/images/logo.svg @@ -0,0 +1,72 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 5855b59d04..e61c48bffd 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -1,165 +1,154 @@ { "metadata": { - "name": "Dark", - "inherits": "cura" + "name": "Ultimaker Dark", + "inherits": "cura-light" }, + "colors": { - "sidebar": [83, 83, 83, 255], - "lining": [127, 127, 127, 255], - "viewport_overlay": [66, 66, 66, 255], + "sidebar": [39, 44, 48, 255], + "lining": [64, 69, 72, 255], + "viewport_overlay": [0, 6, 9, 222], "primary": [12, 169, 227, 255], "primary_hover": [48, 182, 231, 255], - "primary_text": [83, 83, 83, 255], + "primary_text": [255, 255, 255, 204], "border": [127, 127, 127, 255], - "secondary": [66, 66, 66, 255], + "secondary": [241, 242, 242, 255], - "text": [255, 255, 255, 255], - "text_detail": [174, 174, 174, 128], - "text_link": [12, 169, 227, 255], - "text_inactive": [174, 174, 174, 255], - "text_hover": [70, 84, 113, 255], - "text_pressed": [12, 169, 227, 255], - "text_reversed": [255, 255, 255, 255], - "text_subtext": [255, 255, 255, 255], + "topbar_background_color": [0, 0, 0, 0], + "topbar_background_color_monitoring": [31, 36, 39, 255], - "error": [255, 140, 0, 255], + "topbar_button_text_active": [255, 255, 255, 255], + "topbar_button_text_inactive": [128, 128, 128, 255], + "topbar_button_text_hovered": [255, 255, 255, 255], - "sidebar_header_bar": [66, 66, 66, 255], - "sidebar_header_active": [83, 83, 83, 255], - "sidebar_header_hover": [83, 83, 83, 255], - "sidebar_header_highlight": [83, 83, 83, 255], - "sidebar_header_highlight_hover": [66, 66, 66, 255], - "sidebar_lining": [66, 66, 66, 255], + "text": [255, 255, 255, 204], + "text_detail": [255, 255, 255, 172], + "text_link": [255, 255, 255, 127], + "text_inactive": [255, 255, 255, 88], + "text_hover": [255, 255, 255, 204], + "text_pressed": [255, 255, 255, 204], + "text_subtext": [255, 255, 255, 172], + "text_emphasis": [255, 255, 255, 255], + "text_scene": [255, 255, 255, 162], + "text_scene_hover": [255, 255, 255, 204], - "button": [83, 83, 83, 255], - "button_hover": [83, 83, 83, 255], - "button_active": [32, 166, 219, 255], - "button_active_hover": [12, 169, 227, 255], - "button_text": [255, 255, 255, 255], - "button_disabled": [255, 255, 255, 255], - "button_disabled_text": [70, 84, 113, 255], + "error": [212, 31, 53, 255], + "sidebar_header_bar": [39, 44, 48, 255], + "sidebar_header_active": [39, 44, 48, 255], + "sidebar_header_hover": [68, 72, 75, 255], + "sidebar_header_highlight": [68, 192, 255, 255], + "sidebar_header_highlight_hover": [68, 192, 255, 255], + "sidebar_header_text_active": [255, 255, 255, 255], + "sidebar_header_text_hover": [255, 255, 255, 255], + "sidebar_header_text_inactive": [255, 255, 255, 127], + "sidebar_lining": [31, 36, 39, 255], - "button_tooltip": [83, 83, 83, 255], - "button_tooltip_border": [255, 255, 255, 255], - "button_tooltip_text": [255, 255, 255, 255], + "button": [39, 44, 48, 255], + "button_hover": [39, 44, 48, 255], + "button_active": [67, 72, 75, 255], + "button_active_hover": [67, 72, 75, 255], + "button_text": [255, 255, 255, 197], + "button_text_hover": [255, 255, 255, 255], + "button_text_active": [255, 255, 255, 255], + "button_text_active_hover": [255, 255, 255, 255], + "button_disabled": [39, 44, 48, 255], + "button_disabled_text": [255, 255, 255, 101], - "toggle_checked": [255, 255, 255, 255], - "toggle_checked_border": [255, 255, 255, 255], - "toggle_checked_text": [83, 83, 83, 255], - "toggle_unchecked": [83, 83, 83, 255], - "toggle_unchecked_border": [127, 127, 127, 255], - "toggle_unchecked_text": [255, 255, 255, 255], - "toggle_hovered": [83, 83, 83, 255], - "toggle_hovered_border": [32, 166, 219, 255], - "toggle_hovered_text": [255, 255, 255, 255], - "toggle_active": [32, 166, 219, 255], - "toggle_active_border": [32, 166, 219, 255], - "toggle_active_text": [255, 255, 255, 255], + "button_tooltip": [39, 44, 48, 255], + "button_tooltip_border": [39, 44, 48, 255], + "button_tooltip_text": [255, 255, 255, 172], - "tab_checked": [83, 83, 83, 255], - "tab_checked_border": [83, 83, 83, 255], + "tab_checked": [39, 44, 48, 255], + "tab_checked_border": [255, 255, 255, 30], "tab_checked_text": [255, 255, 255, 255], - "tab_unchecked": [66, 66, 66, 255], - "tab_unchecked_border": [66, 66, 66, 255], - "tab_unchecked_text": [127, 127, 127, 255], - "tab_hovered": [66, 66, 66, 255], - "tab_hovered_border": [66, 66, 66, 255], - "tab_hovered_text": [32, 166, 219, 255], - "tab_active": [83, 83, 83, 255], - "tab_active_border": [83, 83, 83, 255], + "tab_unchecked": [39, 44, 48, 255], + "tab_unchecked_border": [255, 255, 255, 30], + "tab_unchecked_text": [255, 255, 255, 101], + "tab_hovered": [39, 44, 48, 255], + "tab_hovered_border": [255, 255, 255, 30], + "tab_hovered_text": [255, 255, 255, 255], + "tab_active": [39, 44, 48, 255], + "tab_active_border": [255, 255, 255, 30], "tab_active_text": [255, 255, 255, 255], - "tab_background": [66, 66, 66, 255], + "tab_background": [39, 44, 48, 255], - "action_button": [83, 83, 83, 255], - "action_button_text": [255, 255, 255, 255], - "action_button_border": [127, 127, 127, 255], - "action_button_hovered": [83, 83, 83, 255], + "action_button": [39, 44, 48, 255], + "action_button_text": [255, 255, 255, 101], + "action_button_border": [255, 255, 255, 30], + "action_button_hovered": [39, 44, 48, 255], "action_button_hovered_text": [255, 255, 255, 255], - "action_button_hovered_border": [12, 169, 227, 255], - "action_button_active": [12, 169, 227, 255], - "action_button_active_text": [83, 83, 83, 255], - "action_button_active_border": [12, 169, 227, 255], - "action_button_disabled": [66, 66, 66, 255], - "action_button_disabled_text": [127, 127, 127, 255], - "action_button_disabled_border": [66, 66, 66, 255], + "action_button_hovered_border": [255, 255, 255, 30], + "action_button_active": [39, 44, 48, 30], + "action_button_active_text": [255, 255, 255, 255], + "action_button_active_border": [255, 255, 255, 30], + "action_button_disabled": [39, 44, 48, 255], + "action_button_disabled_text": [255, 255, 255, 101], + "action_button_disabled_border": [255, 255, 255, 30], - "scrollbar_background": [83, 83, 83, 255], - "scrollbar_handle": [255, 255, 255, 255], - "scrollbar_handle_hover": [12, 159, 227, 255], - "scrollbar_handle_down": [12, 159, 227, 255], + "scrollbar_background": [39, 44, 48, 0], + "scrollbar_handle": [255, 255, 255, 105], + "scrollbar_handle_hover": [255, 255, 255, 255], + "scrollbar_handle_down": [255, 255, 255, 255], - "setting_category": [66, 66, 66, 255], - "setting_category_disabled": [83, 83, 83, 255], - "setting_category_hover": [66, 66, 66, 255], - "setting_category_active": [66, 66, 66, 255], - "setting_category_active_hover": [66, 66, 66, 255], - "setting_category_text": [255, 255, 255, 255], - "setting_category_border": [66, 66, 66, 255], - "setting_category_disabled_border": [66, 66, 66, 255], - "setting_category_hover_border": [12, 159, 227, 255], - "setting_category_active_border": [66, 66, 66, 255], - "setting_category_active_hover_border": [12, 159, 227, 255], + "setting_category": [39, 44, 48, 255], + "setting_category_disabled": [39, 44, 48, 255], + "setting_category_hover": [39, 44, 48, 255], + "setting_category_active": [39, 44, 48, 255], + "setting_category_active_hover": [39, 44, 48, 255], + "setting_category_text": [255, 255, 255, 152], + "setting_category_disabled_text": [255, 255, 255, 101], + "setting_category_hover_text": [255, 255, 255, 204], + "setting_category_active_text": [255, 255, 255, 204], + "setting_category_active_hover_text": [255, 255, 255, 204], + "setting_category_border": [39, 44, 48, 0], + "setting_category_disabled_border": [39, 44, 48, 0], + "setting_category_hover_border": [12, 169, 227, 255], + "setting_category_active_border": [39, 44, 48, 0], + "setting_category_active_hover_border": [12, 169, 227, 255], - "setting_control": [83, 83, 83, 255], - "setting_control_selected": [12, 159, 227, 255], - "setting_control_highlight": [83, 83, 83, 0], - "setting_control_border": [127, 127, 127, 255], + "setting_control": [43, 48, 52, 255], + "setting_control_selected": [34, 39, 42, 38], + "setting_control_highlight": [43, 48, 52, 255], + "setting_control_border": [255, 255, 255, 38], "setting_control_border_highlight": [12, 169, 227, 255], - "setting_control_text": [255, 255, 255, 255], - "setting_control_depth_line": [127, 127, 127, 255], - "setting_control_button": [127, 127, 127, 255], - "setting_control_button_hover": [70, 84, 113, 255], - "setting_control_disabled": [66, 66, 66, 255], - "setting_control_disabled_text": [127, 127, 127, 255], - "setting_control_disabled_border": [127, 127, 127, 255], - "setting_unit": [127, 127, 127, 255], - "setting_validation_error": [204, 37, 0, 255], - "setting_validation_warning": [204, 146, 0, 255], - "setting_validation_ok": [83, 83, 83, 255], + "setting_control_text": [255, 255, 255, 181], + "setting_control_button": [255, 255, 255, 127], + "setting_control_button_hover": [255, 255, 255, 204], + "setting_control_disabled": [34, 39, 42, 255], + "setting_control_disabled_text": [255, 255, 255, 101], + "setting_control_disabled_border": [255, 255, 255, 101], + "setting_unit": [255, 255, 255, 127], + "setting_validation_error_background": [59, 31, 53, 255], + "setting_validation_error": [212, 31, 53, 255], + "setting_validation_warning_background": [62, 54, 46, 255], + "setting_validation_warning": [245, 166, 35, 255], + "setting_validation_ok": [43, 48, 52, 255], - "progressbar_background": [66, 66, 66, 255], - "progressbar_control": [255, 255, 255, 255], + "progressbar_background": [255, 255, 255, 48], + "progressbar_control": [255, 255, 255, 197], - "slider_groove": [66, 66, 66, 255], + "slider_groove": [127, 127, 127, 255], "slider_groove_border": [127, 127, 127, 255], - "slider_groove_fill": [127, 127, 127, 255], - "slider_handle": [32, 166, 219, 255], + "slider_groove_fill": [245, 245, 245, 255], + "slider_handle": [255, 255, 255, 255], "slider_handle_hover": [77, 182, 226, 255], - "slider_text_background": [83, 83, 83, 255], + "slider_handle_border": [39, 44, 48, 255], + "slider_text_background": [255, 255, 255, 255], - "checkbox": [83, 83, 83, 255], - "checkbox_hover": [83, 83, 83, 255], - "checkbox_border": [127, 127, 127, 255], - "checkbox_border_hover": [12, 169, 227, 255], - "checkbox_mark": [255, 255, 255, 255], - "checkbox_text": [255, 255, 255, 255], + "checkbox": [43, 48, 52, 255], + "checkbox_hover": [43, 48, 52, 255], + "checkbox_border": [255, 255, 255, 38], + "checkbox_border_hover": [255, 255, 255, 38], + "checkbox_mark": [255, 255, 255, 181], + "checkbox_text": [255, 255, 255, 181], - "mode_switch": [83, 83, 83, 255], - "mode_switch_hover": [83, 83, 83, 255], - "mode_switch_border": [127, 127, 127, 255], - "mode_switch_border_hover": [12, 169, 227, 255], - "mode_switch_handle": [255, 255, 255, 255], - "mode_switch_text": [255, 255, 255, 255], - "mode_switch_text_hover": [255, 255, 255, 255], - "mode_switch_text_checked": [12, 169, 227, 255], + "tooltip": [39, 44, 48, 255], + "tooltip_text": [255, 255, 255, 204], - "tooltip": [12, 169, 227, 255], - "tooltip_text": [255, 255, 255, 255], + "tool_panel_background": [39, 44, 48, 255], - "message_background": [255, 255, 255, 255], - "message_text": [83, 83, 83, 255], - "message_border": [255, 255, 255, 255], - "message_button": [83, 83, 83, 255], - "message_button_hover": [12, 169, 227, 255], - "message_button_active": [32, 166, 219, 255], - "message_button_text": [255, 255, 255, 255], - "message_button_text_hover": [83, 83, 83, 255], - "message_button_text_active": [83, 83, 83, 255], - "message_progressbar_background": [83, 83, 83, 255], - "message_progressbar_control": [12, 169, 227, 255], - - "tool_panel_background": [83, 83, 83, 255], + "tool_button_border": [255, 255, 255, 38], "status_offline": [0, 0, 0, 255], "status_ready": [0, 205, 0, 255], @@ -170,17 +159,48 @@ "disabled_axis": [127, 127, 127, 255], "x_axis": [255, 0, 0, 255], - "y_axis": [0, 0, 255, 255], + "y_axis": [96, 96, 255, 255], "z_axis": [0, 255, 0, 255], - "all_axis": [83, 83, 83, 255], + "all_axis": [255, 255, 255, 255], - "viewport_background": [66, 66, 66, 255], - "volume_outline": [12, 169, 227, 255], + "viewport_background": [31, 36, 39, 255], + "volume_outline": [12, 169, 227, 128], "buildplate": [169, 169, 169, 255], - "buildplate_alt": [204, 204, 204, 255], + "buildplate_grid": [129, 131, 134, 255], + "buildplate_grid_minor": [154, 154, 155, 255], "convex_hull": [35, 35, 35, 127], - "disallowed_area": [0, 0, 0, 40], - "error_area": [255, 0, 0, 127] + "disallowed_area": [0, 0, 0, 52], + "error_area": [255, 0, 0, 127], + + "model_default": [255, 201, 36, 255], + "model_overhang": [255, 0, 0, 255], + "model_unslicable": [122, 122, 122, 255], + "model_unslicable_alt": [172, 172, 127, 255], + "model_selection_outline": [12, 169, 227, 255], + + "xray": [26, 26, 62, 255], + "xray_error": [255, 0, 0, 255], + + "layerview_ghost": [32, 32, 32, 96], + "layerview_none": [255, 255, 255, 255], + "layerview_inset_0": [255, 0, 0, 255], + "layerview_inset_x": [0, 255, 0, 255], + "layerview_skin": [255, 255, 0, 255], + "layerview_support": [0, 255, 255, 255], + "layerview_skirt": [0, 255, 255, 255], + "layerview_infill": [255, 192, 0, 255], + "layerview_support_infill": [0, 255, 255, 255], + "layerview_move_combing": [0, 0, 255, 255], + "layerview_move_retraction": [128, 128, 255, 255], + "layerview_support_interface": [64, 192, 255, 255], + + "material_compatibility_warning": [255, 255, 255, 255], + + "quality_slider_unavailable": [179, 179, 179, 255], + "quality_slider_available": [255, 255, 255, 255], + "quality_slider_handle": [255, 255, 255, 255], + "quality_slider_handle_hover": [127, 127, 127, 255], + "quality_slider_text": [255, 255, 255, 255] } } diff --git a/resources/themes/cura/fonts/LICENSE.txt b/resources/themes/cura-light/fonts/LICENSE.txt similarity index 98% rename from resources/themes/cura/fonts/LICENSE.txt rename to resources/themes/cura-light/fonts/LICENSE.txt index 75b52484ea..d645695673 100644 --- a/resources/themes/cura/fonts/LICENSE.txt +++ b/resources/themes/cura-light/fonts/LICENSE.txt @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/resources/themes/cura/fonts/OpenSans-Bold.ttf b/resources/themes/cura-light/fonts/OpenSans-Bold.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-Bold.ttf rename to resources/themes/cura-light/fonts/OpenSans-Bold.ttf diff --git a/resources/themes/cura/fonts/OpenSans-BoldItalic.ttf b/resources/themes/cura-light/fonts/OpenSans-BoldItalic.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-BoldItalic.ttf rename to resources/themes/cura-light/fonts/OpenSans-BoldItalic.ttf diff --git a/resources/themes/cura/fonts/OpenSans-Italic.ttf b/resources/themes/cura-light/fonts/OpenSans-Italic.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-Italic.ttf rename to resources/themes/cura-light/fonts/OpenSans-Italic.ttf diff --git a/resources/themes/cura/fonts/OpenSans-Light.ttf b/resources/themes/cura-light/fonts/OpenSans-Light.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-Light.ttf rename to resources/themes/cura-light/fonts/OpenSans-Light.ttf diff --git a/resources/themes/cura/fonts/OpenSans-LightItalic.ttf b/resources/themes/cura-light/fonts/OpenSans-LightItalic.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-LightItalic.ttf rename to resources/themes/cura-light/fonts/OpenSans-LightItalic.ttf diff --git a/resources/themes/cura/fonts/OpenSans-Regular.ttf b/resources/themes/cura-light/fonts/OpenSans-Regular.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-Regular.ttf rename to resources/themes/cura-light/fonts/OpenSans-Regular.ttf diff --git a/resources/themes/cura/fonts/OpenSans-Semibold.ttf b/resources/themes/cura-light/fonts/OpenSans-Semibold.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-Semibold.ttf rename to resources/themes/cura-light/fonts/OpenSans-Semibold.ttf diff --git a/resources/themes/cura/fonts/OpenSans-SemiboldItalic.ttf b/resources/themes/cura-light/fonts/OpenSans-SemiboldItalic.ttf similarity index 100% rename from resources/themes/cura/fonts/OpenSans-SemiboldItalic.ttf rename to resources/themes/cura-light/fonts/OpenSans-SemiboldItalic.ttf diff --git a/resources/themes/cura/icons/application.svg b/resources/themes/cura-light/icons/application.svg similarity index 100% rename from resources/themes/cura/icons/application.svg rename to resources/themes/cura-light/icons/application.svg diff --git a/resources/themes/cura/icons/arrow_bottom.svg b/resources/themes/cura-light/icons/arrow_bottom.svg similarity index 100% rename from resources/themes/cura/icons/arrow_bottom.svg rename to resources/themes/cura-light/icons/arrow_bottom.svg diff --git a/resources/themes/cura/icons/arrow_left.svg b/resources/themes/cura-light/icons/arrow_left.svg similarity index 100% rename from resources/themes/cura/icons/arrow_left.svg rename to resources/themes/cura-light/icons/arrow_left.svg diff --git a/resources/themes/cura/icons/arrow_right.svg b/resources/themes/cura-light/icons/arrow_right.svg similarity index 100% rename from resources/themes/cura/icons/arrow_right.svg rename to resources/themes/cura-light/icons/arrow_right.svg diff --git a/resources/themes/cura/icons/arrow_top.svg b/resources/themes/cura-light/icons/arrow_top.svg similarity index 100% rename from resources/themes/cura/icons/arrow_top.svg rename to resources/themes/cura-light/icons/arrow_top.svg diff --git a/resources/themes/cura/icons/basic.svg b/resources/themes/cura-light/icons/basic.svg similarity index 100% rename from resources/themes/cura/icons/basic.svg rename to resources/themes/cura-light/icons/basic.svg diff --git a/resources/themes/cura/icons/category_adhesion.svg b/resources/themes/cura-light/icons/category_adhesion.svg similarity index 100% rename from resources/themes/cura/icons/category_adhesion.svg rename to resources/themes/cura-light/icons/category_adhesion.svg diff --git a/resources/themes/cura/icons/category_blackmagic.svg b/resources/themes/cura-light/icons/category_blackmagic.svg similarity index 100% rename from resources/themes/cura/icons/category_blackmagic.svg rename to resources/themes/cura-light/icons/category_blackmagic.svg diff --git a/resources/themes/cura/icons/category_cool.svg b/resources/themes/cura-light/icons/category_cool.svg similarity index 100% rename from resources/themes/cura/icons/category_cool.svg rename to resources/themes/cura-light/icons/category_cool.svg diff --git a/resources/themes/cura/icons/category_dual.svg b/resources/themes/cura-light/icons/category_dual.svg similarity index 100% rename from resources/themes/cura/icons/category_dual.svg rename to resources/themes/cura-light/icons/category_dual.svg diff --git a/resources/themes/cura/icons/category_experimental.svg b/resources/themes/cura-light/icons/category_experimental.svg similarity index 100% rename from resources/themes/cura/icons/category_experimental.svg rename to resources/themes/cura-light/icons/category_experimental.svg diff --git a/resources/themes/cura/icons/category_fixes.svg b/resources/themes/cura-light/icons/category_fixes.svg similarity index 100% rename from resources/themes/cura/icons/category_fixes.svg rename to resources/themes/cura-light/icons/category_fixes.svg diff --git a/resources/themes/cura/icons/category_infill.svg b/resources/themes/cura-light/icons/category_infill.svg similarity index 100% rename from resources/themes/cura/icons/category_infill.svg rename to resources/themes/cura-light/icons/category_infill.svg diff --git a/resources/themes/cura/icons/category_layer_height.svg b/resources/themes/cura-light/icons/category_layer_height.svg similarity index 100% rename from resources/themes/cura/icons/category_layer_height.svg rename to resources/themes/cura-light/icons/category_layer_height.svg diff --git a/resources/themes/cura/icons/category_machine.svg b/resources/themes/cura-light/icons/category_machine.svg similarity index 100% rename from resources/themes/cura/icons/category_machine.svg rename to resources/themes/cura-light/icons/category_machine.svg diff --git a/resources/themes/cura/icons/category_material.svg b/resources/themes/cura-light/icons/category_material.svg similarity index 100% rename from resources/themes/cura/icons/category_material.svg rename to resources/themes/cura-light/icons/category_material.svg diff --git a/resources/themes/cura/icons/category_shell.svg b/resources/themes/cura-light/icons/category_shell.svg similarity index 100% rename from resources/themes/cura/icons/category_shell.svg rename to resources/themes/cura-light/icons/category_shell.svg diff --git a/resources/themes/cura/icons/category_shield.svg b/resources/themes/cura-light/icons/category_shield.svg similarity index 100% rename from resources/themes/cura/icons/category_shield.svg rename to resources/themes/cura-light/icons/category_shield.svg diff --git a/resources/themes/cura/icons/category_speed.svg b/resources/themes/cura-light/icons/category_speed.svg similarity index 100% rename from resources/themes/cura/icons/category_speed.svg rename to resources/themes/cura-light/icons/category_speed.svg diff --git a/resources/themes/cura/icons/category_support.svg b/resources/themes/cura-light/icons/category_support.svg similarity index 100% rename from resources/themes/cura/icons/category_support.svg rename to resources/themes/cura-light/icons/category_support.svg diff --git a/resources/themes/cura/icons/category_travel.svg b/resources/themes/cura-light/icons/category_travel.svg similarity index 100% rename from resources/themes/cura/icons/category_travel.svg rename to resources/themes/cura-light/icons/category_travel.svg diff --git a/resources/themes/cura/icons/category_unknown.svg b/resources/themes/cura-light/icons/category_unknown.svg similarity index 100% rename from resources/themes/cura/icons/category_unknown.svg rename to resources/themes/cura-light/icons/category_unknown.svg diff --git a/resources/themes/cura/icons/check.svg b/resources/themes/cura-light/icons/check.svg similarity index 100% rename from resources/themes/cura/icons/check.svg rename to resources/themes/cura-light/icons/check.svg diff --git a/resources/themes/cura/icons/cross1.svg b/resources/themes/cura-light/icons/cross1.svg similarity index 100% rename from resources/themes/cura/icons/cross1.svg rename to resources/themes/cura-light/icons/cross1.svg diff --git a/resources/themes/cura/icons/cross2.svg b/resources/themes/cura-light/icons/cross2.svg similarity index 100% rename from resources/themes/cura/icons/cross2.svg rename to resources/themes/cura-light/icons/cross2.svg diff --git a/resources/themes/cura/icons/dense.svg b/resources/themes/cura-light/icons/dense.svg similarity index 100% rename from resources/themes/cura/icons/dense.svg rename to resources/themes/cura-light/icons/dense.svg diff --git a/resources/themes/cura/icons/dot.svg b/resources/themes/cura-light/icons/dot.svg similarity index 100% rename from resources/themes/cura/icons/dot.svg rename to resources/themes/cura-light/icons/dot.svg diff --git a/resources/themes/cura-light/icons/drop_down_button.svg b/resources/themes/cura-light/icons/drop_down_button.svg new file mode 100644 index 0000000000..18748e6d70 --- /dev/null +++ b/resources/themes/cura-light/icons/drop_down_button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/extruder_button.svg b/resources/themes/cura-light/icons/extruder_button.svg new file mode 100644 index 0000000000..e3c01b6a0a --- /dev/null +++ b/resources/themes/cura-light/icons/extruder_button.svg @@ -0,0 +1,64 @@ + + + + + + image/svg+xml + + Artboard 3 Copy + + + + + + Artboard 3 Copy + Created with Sketch. + + + diff --git a/resources/themes/cura/icons/gradual.svg b/resources/themes/cura-light/icons/gradual.svg similarity index 100% rename from resources/themes/cura/icons/gradual.svg rename to resources/themes/cura-light/icons/gradual.svg diff --git a/resources/themes/cura/icons/hollow.svg b/resources/themes/cura-light/icons/hollow.svg similarity index 100% rename from resources/themes/cura/icons/hollow.svg rename to resources/themes/cura-light/icons/hollow.svg diff --git a/resources/themes/cura-light/icons/home.svg b/resources/themes/cura-light/icons/home.svg new file mode 100644 index 0000000000..a355aa07f6 --- /dev/null +++ b/resources/themes/cura-light/icons/home.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/themes/cura/icons/link.svg b/resources/themes/cura-light/icons/link.svg similarity index 100% rename from resources/themes/cura/icons/link.svg rename to resources/themes/cura-light/icons/link.svg diff --git a/resources/themes/cura/icons/load.svg b/resources/themes/cura-light/icons/load.svg similarity index 100% rename from resources/themes/cura/icons/load.svg rename to resources/themes/cura-light/icons/load.svg diff --git a/resources/themes/cura/icons/minus.svg b/resources/themes/cura-light/icons/minus.svg similarity index 100% rename from resources/themes/cura/icons/minus.svg rename to resources/themes/cura-light/icons/minus.svg diff --git a/resources/themes/cura/icons/mirror.svg b/resources/themes/cura-light/icons/mirror.svg similarity index 100% rename from resources/themes/cura/icons/mirror.svg rename to resources/themes/cura-light/icons/mirror.svg diff --git a/resources/themes/cura-light/icons/notice.svg b/resources/themes/cura-light/icons/notice.svg new file mode 100644 index 0000000000..36154d6729 --- /dev/null +++ b/resources/themes/cura-light/icons/notice.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/resources/themes/cura/icons/pencil.svg b/resources/themes/cura-light/icons/pencil.svg similarity index 100% rename from resources/themes/cura/icons/pencil.svg rename to resources/themes/cura-light/icons/pencil.svg diff --git a/resources/themes/cura-light/icons/play.svg b/resources/themes/cura-light/icons/play.svg new file mode 100644 index 0000000000..04aea11a9b --- /dev/null +++ b/resources/themes/cura-light/icons/play.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/resources/themes/cura/icons/plugin.svg b/resources/themes/cura-light/icons/plugin.svg similarity index 100% rename from resources/themes/cura/icons/plugin.svg rename to resources/themes/cura-light/icons/plugin.svg diff --git a/resources/themes/cura/icons/plus.svg b/resources/themes/cura-light/icons/plus.svg similarity index 100% rename from resources/themes/cura/icons/plus.svg rename to resources/themes/cura-light/icons/plus.svg diff --git a/resources/themes/cura/icons/print_time.svg b/resources/themes/cura-light/icons/print_time.svg similarity index 100% rename from resources/themes/cura/icons/print_time.svg rename to resources/themes/cura-light/icons/print_time.svg diff --git a/resources/themes/cura/icons/printsetup.svg b/resources/themes/cura-light/icons/printsetup.svg similarity index 100% rename from resources/themes/cura/icons/printsetup.svg rename to resources/themes/cura-light/icons/printsetup.svg diff --git a/resources/themes/cura/icons/quick.svg b/resources/themes/cura-light/icons/quick.svg similarity index 100% rename from resources/themes/cura/icons/quick.svg rename to resources/themes/cura-light/icons/quick.svg diff --git a/resources/themes/cura/icons/reset.svg b/resources/themes/cura-light/icons/reset.svg similarity index 100% rename from resources/themes/cura/icons/reset.svg rename to resources/themes/cura-light/icons/reset.svg diff --git a/resources/themes/cura/icons/rotate.svg b/resources/themes/cura-light/icons/rotate.svg similarity index 100% rename from resources/themes/cura/icons/rotate.svg rename to resources/themes/cura-light/icons/rotate.svg diff --git a/resources/themes/cura/icons/rotate_layflat.svg b/resources/themes/cura-light/icons/rotate_layflat.svg similarity index 100% rename from resources/themes/cura/icons/rotate_layflat.svg rename to resources/themes/cura-light/icons/rotate_layflat.svg diff --git a/resources/themes/cura/icons/rotate_reset.svg b/resources/themes/cura-light/icons/rotate_reset.svg similarity index 100% rename from resources/themes/cura/icons/rotate_reset.svg rename to resources/themes/cura-light/icons/rotate_reset.svg diff --git a/resources/themes/cura/icons/scale.svg b/resources/themes/cura-light/icons/scale.svg similarity index 100% rename from resources/themes/cura/icons/scale.svg rename to resources/themes/cura-light/icons/scale.svg diff --git a/resources/themes/cura/icons/scale_max.svg b/resources/themes/cura-light/icons/scale_max.svg similarity index 100% rename from resources/themes/cura/icons/scale_max.svg rename to resources/themes/cura-light/icons/scale_max.svg diff --git a/resources/themes/cura/icons/scale_reset.svg b/resources/themes/cura-light/icons/scale_reset.svg similarity index 100% rename from resources/themes/cura/icons/scale_reset.svg rename to resources/themes/cura-light/icons/scale_reset.svg diff --git a/resources/themes/cura/icons/search.svg b/resources/themes/cura-light/icons/search.svg similarity index 100% rename from resources/themes/cura/icons/search.svg rename to resources/themes/cura-light/icons/search.svg diff --git a/resources/themes/cura/icons/setting_per_object.svg b/resources/themes/cura-light/icons/setting_per_object.svg similarity index 100% rename from resources/themes/cura/icons/setting_per_object.svg rename to resources/themes/cura-light/icons/setting_per_object.svg diff --git a/resources/themes/cura/icons/settings.svg b/resources/themes/cura-light/icons/settings.svg similarity index 100% rename from resources/themes/cura/icons/settings.svg rename to resources/themes/cura-light/icons/settings.svg diff --git a/resources/themes/cura/icons/solid.svg b/resources/themes/cura-light/icons/solid.svg similarity index 100% rename from resources/themes/cura/icons/solid.svg rename to resources/themes/cura-light/icons/solid.svg diff --git a/resources/themes/cura/icons/sparse.svg b/resources/themes/cura-light/icons/sparse.svg similarity index 100% rename from resources/themes/cura/icons/sparse.svg rename to resources/themes/cura-light/icons/sparse.svg diff --git a/resources/themes/cura/icons/star.svg b/resources/themes/cura-light/icons/star.svg similarity index 100% rename from resources/themes/cura/icons/star.svg rename to resources/themes/cura-light/icons/star.svg diff --git a/resources/themes/cura-light/icons/tab_status_busy.svg b/resources/themes/cura-light/icons/tab_status_busy.svg new file mode 100644 index 0000000000..debe4f6360 --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_busy.svg @@ -0,0 +1,13 @@ + + + + Busy + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_connected.svg b/resources/themes/cura-light/icons/tab_status_connected.svg new file mode 100644 index 0000000000..a8ff015a9d --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_connected.svg @@ -0,0 +1,13 @@ + + + + Connected + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_finished.svg b/resources/themes/cura-light/icons/tab_status_finished.svg new file mode 100644 index 0000000000..2519f2f862 --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_finished.svg @@ -0,0 +1,13 @@ + + + + Wait cleanup + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_paused.svg b/resources/themes/cura-light/icons/tab_status_paused.svg new file mode 100644 index 0000000000..bab6c9ca6b --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_paused.svg @@ -0,0 +1,13 @@ + + + + paused + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_stopped.svg b/resources/themes/cura-light/icons/tab_status_stopped.svg new file mode 100644 index 0000000000..c9b150db3a --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_stopped.svg @@ -0,0 +1,13 @@ + + + + Aborted + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_unknown.svg b/resources/themes/cura-light/icons/tab_status_unknown.svg new file mode 100644 index 0000000000..9f413baffc --- /dev/null +++ b/resources/themes/cura-light/icons/tab_status_unknown.svg @@ -0,0 +1,13 @@ + + + + Unknown + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura/icons/translate.svg b/resources/themes/cura-light/icons/translate.svg similarity index 100% rename from resources/themes/cura/icons/translate.svg rename to resources/themes/cura-light/icons/translate.svg diff --git a/resources/themes/cura/icons/ulti.svg b/resources/themes/cura-light/icons/ulti.svg similarity index 100% rename from resources/themes/cura/icons/ulti.svg rename to resources/themes/cura-light/icons/ulti.svg diff --git a/resources/themes/cura/icons/view_layer.svg b/resources/themes/cura-light/icons/view_layer.svg similarity index 100% rename from resources/themes/cura/icons/view_layer.svg rename to resources/themes/cura-light/icons/view_layer.svg diff --git a/resources/themes/cura/icons/view_normal.svg b/resources/themes/cura-light/icons/view_normal.svg similarity index 100% rename from resources/themes/cura/icons/view_normal.svg rename to resources/themes/cura-light/icons/view_normal.svg diff --git a/resources/themes/cura/icons/view_xray.svg b/resources/themes/cura-light/icons/view_xray.svg similarity index 100% rename from resources/themes/cura/icons/view_xray.svg rename to resources/themes/cura-light/icons/view_xray.svg diff --git a/resources/themes/cura-light/icons/viewmode.svg b/resources/themes/cura-light/icons/viewmode.svg new file mode 100644 index 0000000000..a21df01f37 --- /dev/null +++ b/resources/themes/cura-light/icons/viewmode.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/warning.svg b/resources/themes/cura-light/icons/warning.svg new file mode 100644 index 0000000000..ae8a7a6430 --- /dev/null +++ b/resources/themes/cura-light/icons/warning.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/logo.svg b/resources/themes/cura-light/images/logo.svg new file mode 100644 index 0000000000..5fa5895443 --- /dev/null +++ b/resources/themes/cura-light/images/logo.svg @@ -0,0 +1,72 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura-light/styles.qml similarity index 64% rename from resources/themes/cura/styles.qml rename to resources/themes/cura-light/styles.qml index d161d33d56..6d991c5541 100755 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -8,81 +8,6 @@ import QtQuick.Controls.Styles 1.1 import UM 1.1 as UM QtObject { - property Component info_button: Component { - ButtonStyle { - label: Text { - renderType: Text.NativeRendering - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font: UM.Theme.getFont("small") - color: UM.Theme.getColor("button_text") - text: control.text - } - - background: Rectangle { - implicitHeight: UM.Theme.getSize("info_button").height - implicitWidth: width - border.width: 0 - radius: height * 0.5 - - color: { - if (control.pressed) { - return UM.Theme.getColor("button_active"); - } else if (control.hovered) { - return UM.Theme.getColor("button_hover"); - } else { - return UM.Theme.getColor("button"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - } - } - } - - property Component mode_switch: Component { - SwitchStyle { - groove: Rectangle { - implicitWidth: UM.Theme.getSize("mode_switch").width - implicitHeight: UM.Theme.getSize("mode_switch").height - radius: implicitHeight / 2 - color: { - if(control.hovered || control._hovered) { - return UM.Theme.getColor("mode_switch_hover"); - } else { - return UM.Theme.getColor("mode_switch"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - border.color: { - if(control.hovered || control._hovered) { - return UM.Theme.getColor("mode_switch_border_hover"); - } else { - return UM.Theme.getColor("mode_switch_border"); - } - } - Behavior on border.color { ColorAnimation { duration: 50; } } - border.width: 1 - } - - handle: Rectangle { - implicitWidth: implicitHeight - implicitHeight: UM.Theme.getSize("mode_switch").height - radius: implicitHeight / 2 - - color: { - if (control.pressed || (control.checkable && control.checked)) { - return UM.Theme.getColor("sidebar_header_active"); - } else if(control.hovered) { - return UM.Theme.getColor("sidebar_header_hover"); - } else { - return UM.Theme.getColor("sidebar_header_bar"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - } - } - } - property Component sidebar_header_button: Component { ButtonStyle { background: Rectangle { @@ -92,23 +17,50 @@ QtObject { { if(control.valueError) { - return Theme.getColor("setting_validation_error"); + return Theme.getColor("setting_validation_error_background"); } else if(control.valueWarning) { - return Theme.getColor("setting_validation_warning"); - } else + return Theme.getColor("setting_validation_warning_background"); + } + else { return Theme.getColor("setting_control"); } - } else { + } + else + { return Theme.getColor("setting_control_disabled"); } } border.width: Theme.getSize("default_lining").width - border.color: !control.enabled ? Theme.getColor("setting_control_disabled_border") : - control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border") + border.color: + { + if (control.enabled) + { + if (control.valueError) + { + return Theme.getColor("setting_validation_error"); + } + else if (control.valueWarning) + { + return Theme.getColor("setting_validation_warning"); + } + else if (control.hovered) + { + return Theme.getColor("setting_control_border_highlight"); + } + else + { + return Theme.getColor("setting_control_border"); + } + } + else + { + return Theme.getColor("setting_control_disabled_border"); + } + } UM.RecolorImage { id: downArrow anchors.verticalCenter: parent.verticalCenter @@ -118,7 +70,7 @@ QtObject { height: Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: width - color: control.enabled ? Theme.getColor("setting_category_text") : Theme.getColor("setting_control_disabled_text") + color: control.enabled ? Theme.getColor("setting_category_text") : Theme.getColor("setting_category_disabled_text") source: Theme.getIcon("arrow_bottom") } Label { @@ -138,36 +90,100 @@ QtObject { } } + property Component topbar_header_tab_no_overlay: Component { + ButtonStyle { + background: Rectangle { + implicitHeight: Theme.getSize("topbar_button").height + implicitWidth: Theme.getSize("topbar_button").width + color: "transparent" + anchors.fill: parent + + Rectangle + { + id: underline + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + width: parent.width + height: Theme.getSize("sidebar_header_highlight").height + color: control.checked ? UM.Theme.getColor("sidebar_header_highlight") : UM.Theme.getColor("sidebar_header_highlight_hover") + visible: control.hovered || control.checked + } + } + + label: Rectangle { + implicitHeight: Theme.getSize("topbar_button_icon").height + implicitWidth: Theme.getSize("topbar_button").width + color: "transparent" + anchors.fill: parent + + Item + { + anchors.centerIn: parent + width: textLabel.width + icon.width + Theme.getSize("default_margin").width / 2 + Label + { + id: textLabel + text: control.text + anchors.right: icon.visible ? icon.left : parent.right + anchors.rightMargin: icon.visible ? Theme.getSize("default_margin").width / 2 : 0 + anchors.verticalCenter: parent.verticalCenter; + font: control.checked ? UM.Theme.getFont("large") : UM.Theme.getFont("large_nonbold") + color: + { + if(control.hovered) + { + return UM.Theme.getColor("topbar_button_text_hovered"); + } + if(control.checked) + { + return UM.Theme.getColor("topbar_button_text_active"); + } + else + { + return UM.Theme.getColor("topbar_button_text_inactive"); + } + } + } + Image + { + id: icon + visible: control.iconSource != "" + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + opacity: !control.enabled ? 0.2 : 1.0 + source: control.iconSource + width: visible ? Theme.getSize("topbar_button_icon").width : 0 + height: Theme.getSize("topbar_button_icon").height + + sourceSize: Theme.getSize("topbar_button_icon") + } + } + } + } + } + property Component topbar_header_tab: Component { ButtonStyle { background: Item { - implicitWidth: Theme.getSize("topbar_button").width; - implicitHeight: Theme.getSize("topbar_button").height; + implicitHeight: Theme.getSize("topbar_button").height + implicitWidth: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width Rectangle { id: buttonFace; - anchors.fill: parent; - property bool down: control.pressed || (control.checkable && control.checked); - color: { - if(control.pressed || (control.checkable && control.checked)) { - return Theme.getColor("sidebar_header_active"); - } else if(control.hovered) { - return Theme.getColor("sidebar_header_hover"); - } else { - return Theme.getColor("sidebar_header_bar"); - } - } + color: "transparent" Behavior on color { ColorAnimation { duration: 50; } } Rectangle { id: underline; - anchors.left: parent.left - anchors.right: parent.right + anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom - height: UM.Theme.getSize("sidebar_header_highlight").height + width: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width + height: Theme.getSize("sidebar_header_highlight").height color: control.checked ? UM.Theme.getColor("sidebar_header_highlight") : UM.Theme.getColor("sidebar_header_highlight_hover") visible: control.hovered || control.checked } @@ -176,45 +192,60 @@ QtObject { label: Item { - - implicitHeight: Theme.getSize("button_icon").height - implicitWidth: Theme.getSize("topbar_button").width; + implicitHeight: Theme.getSize("topbar_button_icon").height + implicitWidth: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width Item { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter; width: childrenRect.width - height: Theme.getSize("button_icon").height - UM.RecolorImage - { - id: icon - color: UM.Theme.getColor("text_reversed") - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource - width: Theme.getSize("button_icon").width - height: Theme.getSize("button_icon").height - - sourceSize: Theme.getSize("button_icon") - } - UM.RecolorImage - { - visible: control.overlayIconSource != "" - color: control.overlayColor - opacity: !control.enabled ? 0.2 : 1.0 - source: control.overlayIconSource - width: Theme.getSize("button_icon").width - height: Theme.getSize("button_icon").height - - sourceSize: Theme.getSize("button_icon") - } + height: Theme.getSize("topbar_button_icon").height Label { text: control.text; - anchors.left: icon.right - anchors.leftMargin: Theme.getSize("default_margin").width + anchors.right: (icon.visible || overlayIcon.visible) ? icon.left : parent.right + anchors.rightMargin: (icon.visible || overlayIcon.visible) ? Theme.getSize("default_margin").width : 0 anchors.verticalCenter: parent.verticalCenter; - font: UM.Theme.getFont("large"); - color: UM.Theme.getColor("text_reversed") + font: control.checked ? UM.Theme.getFont("large") : UM.Theme.getFont("large_nonbold") + color: + { + if(control.hovered) + { + return UM.Theme.getColor("topbar_button_text_hovered"); + } + if(control.checked) + { + return UM.Theme.getColor("topbar_button_text_active"); + } + else + { + return UM.Theme.getColor("topbar_button_text_inactive"); + } + } + } + UM.RecolorImage + { + visible: control.iconSource != "" + id: icon + color: UM.Theme.getColor("text_emphasis") + opacity: !control.enabled ? 0.2 : 1.0 + source: control.iconSource + width: visible ? Theme.getSize("topbar_button_icon").width : 0 + height: Theme.getSize("topbar_button_icon").height + + sourceSize: Theme.getSize("topbar_button_icon") + } + UM.RecolorImage + { + id: overlayIcon + visible: control.overlayIconSource != "" && control.iconSource != "" + color: control.overlayColor + opacity: !control.enabled ? 0.2 : 1.0 + source: control.overlayIconSource + width: visible ? Theme.getSize("topbar_button_icon").width : 0 + height: Theme.getSize("topbar_button_icon").height + + sourceSize: Theme.getSize("topbar_button_icon") } } } @@ -236,7 +267,7 @@ QtObject { target: Qt.point(parent.x, y + height/2) arrowSize: Theme.getSize("button_tooltip_arrow").width - color: Theme.getColor("tooltip") + color: Theme.getColor("button_tooltip") opacity: control.hovered ? 1.0 : 0.0; width: control.hovered ? button_tip.width + Theme.getSize("button_tooltip").width : 0 @@ -278,10 +309,11 @@ QtObject { } Behavior on color { ColorAnimation { duration: 50; } } + border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? 2 * screenScaleFactor : 0 + border.color: Theme.getColor("tool_button_border") UM.RecolorImage { id: tool_button_arrow - opacity: !control.enabled ? 0.2 : 1.0 anchors.right: parent.right; anchors.rightMargin: (Theme.getSize("button").width - Theme.getSize("button_icon").width) / 4 anchors.bottom: parent.bottom; @@ -291,7 +323,25 @@ QtObject { sourceSize.width: width sourceSize.height: width visible: control.menu != null; - color: Theme.getColor("button_text") + color: + { + if(control.checkable && control.checked && control.hovered) + { + return Theme.getColor("button_text_active_hover"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("button_text_active"); + } + else if(control.hovered) + { + return Theme.getColor("button_text_hover"); + } + else + { + return Theme.getColor("button_text"); + } + } source: Theme.getIcon("arrow_bottom") } } @@ -304,7 +354,25 @@ QtObject { source: control.iconSource; width: Theme.getSize("button_icon").width; height: Theme.getSize("button_icon").height; - color: Theme.getColor("button_text") + color: + { + if(control.checkable && control.checked && control.hovered) + { + return Theme.getColor("button_text_active_hover"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("button_text_active"); + } + else if(control.hovered) + { + return Theme.getColor("button_text_hover"); + } + else + { + return Theme.getColor("button_text"); + } + } sourceSize: Theme.getSize("button_icon") } @@ -317,7 +385,6 @@ QtObject { background: Rectangle { implicitWidth: Theme.getSize("message").width - (Theme.getSize("default_margin").width * 2) implicitHeight: Theme.getSize("progressbar").height - radius: Theme.getSize("progressbar_radius").width color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : Theme.getColor("progressbar_background") } progress: Rectangle { @@ -362,9 +429,9 @@ QtObject { background: Rectangle { anchors.fill: parent; anchors.left: parent.left - anchors.leftMargin: Theme.getSize("default_margin").width + anchors.leftMargin: Theme.getSize("sidebar_margin").width anchors.right: parent.right - anchors.rightMargin: Theme.getSize("default_margin").width + anchors.rightMargin: Theme.getSize("sidebar_margin").width implicitHeight: Theme.getSize("section").height; color: { if(control.color) { @@ -412,26 +479,70 @@ QtObject { UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - anchors.leftMargin: Theme.getSize("default_margin").width - color: Theme.getColor("setting_category_text") + anchors.leftMargin: Theme.getSize("sidebar_margin").width + color: + { + if(!control.enabled) + { + return Theme.getColor("setting_category_disabled_text"); + } + else if((control.hovered || control.activeFocus) && control.checkable && control.checked) + { + return Theme.getColor("setting_category_active_hover_text"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("setting_category_active_text"); + } + else if(control.hovered || control.activeFocus) + { + return Theme.getColor("setting_category_hover_text"); + } + else + { + return Theme.getColor("setting_category_text"); + } + } source: control.iconSource; width: Theme.getSize("section_icon").width; height: Theme.getSize("section_icon").height; - sourceSize.width: width + 15 - sourceSize.height: width + 15 + sourceSize.width: width + 15 * screenScaleFactor + sourceSize.height: width + 15 * screenScaleFactor } } Label { anchors { left: icon.right; - leftMargin: Theme.getSize("default_lining").width; + leftMargin: Theme.getSize("default_margin").width; right: parent.right; verticalCenter: parent.verticalCenter; } text: control.text; font: Theme.getFont("setting_category"); - color: Theme.getColor("setting_category_text"); + color: + { + if(!control.enabled) + { + return Theme.getColor("setting_category_disabled_text"); + } + else if((control.hovered || control.activeFocus) && control.checkable && control.checked) + { + return Theme.getColor("setting_category_active_hover_text"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("setting_category_active_text"); + } + else if(control.hovered || control.activeFocus) + { + return Theme.getColor("setting_category_hover_text"); + } + else + { + return Theme.getColor("setting_category_text"); + } + } fontSizeMode: Text.HorizontalFit; minimumPointSize: 8 } @@ -439,12 +550,34 @@ QtObject { id: category_arrow anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right - anchors.rightMargin: Theme.getSize("default_margin").width * 2 - width / 2 + anchors.rightMargin: Theme.getSize("default_margin").width * 3 - width / 2 width: Theme.getSize("standard_arrow").width height: Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: width - color: Theme.getColor("setting_category_text") + color: + { + if(!control.enabled) + { + return Theme.getColor("setting_category_disabled_text"); + } + else if((control.hovered || control.activeFocus) && control.checkable && control.checked) + { + return Theme.getColor("setting_category_active_hover_text"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("setting_category_active_text"); + } + else if(control.hovered || control.activeFocus) + { + return Theme.getColor("setting_category_hover_text"); + } + else + { + return Theme.getColor("setting_category_text"); + } + } source: control.checked ? Theme.getIcon("arrow_bottom") : Theme.getIcon("arrow_left") } } @@ -477,17 +610,20 @@ QtObject { property Component combobox: Component { ComboBoxStyle { + background: Rectangle { implicitHeight: Theme.getSize("setting_control").height; implicitWidth: Theme.getSize("setting_control").width; - color: (control.hovered || control._hovered) ? Theme.getColor("setting_control_highlight") : Theme.getColor("setting_control"); + color: control.hovered ? UM.Theme.getColor("setting_control_highlight") : UM.Theme.getColor("setting_control") Behavior on color { ColorAnimation { duration: 50; } } border.width: Theme.getSize("default_lining").width; - border.color: (control.hovered || control._hovered) ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border"); + border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border"); } + label: Item { + Label { anchors.left: parent.left; anchors.leftMargin: Theme.getSize("default_lining").width @@ -512,8 +648,8 @@ QtObject { source: Theme.getIcon("arrow_bottom") width: Theme.getSize("standard_arrow").width height: Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 - sourceSize.height: width + 5 + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor color: Theme.getColor("setting_control_text"); } @@ -523,48 +659,21 @@ QtObject { // Combobox with items with colored rectangles property Component combobox_color: Component { - ComboBoxStyle - { - background: Rectangle - { - color: - { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled"); - } - if(control.hovered) - { - return UM.Theme.getColor("setting_control_highlight"); - } - else - { - return UM.Theme.getColor("setting_control"); - } - } + + ComboBoxStyle { + + background: Rectangle { + color: !enabled ? UM.Theme.getColor("setting_control_disabled") : control._hovered ? UM.Theme.getColor("setting_control_highlight") : UM.Theme.getColor("setting_control") border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control._hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") } - label: Item - { - Rectangle - { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height + + label: Item { + + Label { anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_lining").width - anchors.verticalCenter: parent.verticalCenter - - color: if (control.color_override != "") {return control.color_override} else {return control.color;} - border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border") - } - Label - { - anchors.left: swatch.right - anchors.leftMargin: UM.Theme.getSize("default_lining").width - anchors.right: downArrow.left + anchors.right: swatch.left anchors.rightMargin: UM.Theme.getSize("default_lining").width anchors.verticalCenter: parent.verticalCenter @@ -576,8 +685,20 @@ QtObject { verticalAlignment: Text.AlignVCenter } - UM.RecolorImage - { + Rectangle { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height + anchors.right: downArrow.left + anchors.verticalCenter: parent.verticalCenter + anchors.margins: UM.Theme.getSize("default_margin").width / 4 + radius: width / 2 + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: (control.color_override !== "") ? control.color_override : control.color + } + + UM.RecolorImage { id: downArrow anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 @@ -586,8 +707,8 @@ QtObject { source: UM.Theme.getIcon("arrow_bottom") width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 - sourceSize.height: width + 5 + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor color: UM.Theme.getColor("setting_control_text") } @@ -613,8 +734,8 @@ QtObject { UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - width: parent.width/2.5 - height: parent.height/2.5 + width: parent.width / 2.5 + height: parent.height / 2.5 sourceSize.width: width sourceSize.height: width color: Theme.getColor("checkbox_mark") @@ -658,7 +779,9 @@ QtObject { width: Theme.getSize("slider_handle").width; height: Theme.getSize("slider_handle").height; color: control.hovered ? Theme.getColor("slider_handle_hover") : Theme.getColor("slider_handle"); - radius: Theme.getSize("slider_handle").width/2; + border.width: Theme.getSize("default_lining").width + border.color: control.hovered ? Theme.getColor("slider_handle_hover_border") : Theme.getColor("slider_handle_border") + radius: Theme.getSize("slider_handle").width / 2; //Round. Behavior on color { ColorAnimation { duration: 50; } } } } @@ -667,6 +790,7 @@ QtObject { property Component text_field: Component { TextFieldStyle { textColor: Theme.getColor("setting_control_text"); + placeholderTextColor: Theme.getColor("setting_control_text") font: Theme.getFont("default"); background: Rectangle @@ -722,7 +846,7 @@ QtObject { } Behavior on color { ColorAnimation { duration: 50; } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) Label { diff --git a/resources/themes/cura/theme.json b/resources/themes/cura-light/theme.json similarity index 59% rename from resources/themes/cura/theme.json rename to resources/themes/cura-light/theme.json index 60b542dbf4..f084e87da2 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura-light/theme.json @@ -2,12 +2,17 @@ "metadata": { "name": "Ultimaker" }, + "fonts": { "large": { "size": 1.25, "bold": true, "family": "Open Sans" }, + "large_nonbold": { + "size": 1.25, + "family": "Open Sans" + }, "default": { "size": 1.15, "family": "Open Sans" @@ -49,8 +54,8 @@ "colors": { "sidebar": [255, 255, 255, 255], - "lining": [127, 127, 127, 255], - "viewport_overlay": [24, 41, 77, 255], + "lining": [192, 193, 194, 255], + "viewport_overlay": [0, 0, 0, 192], "primary": [12, 169, 227, 255], "primary_hover": [48, 182, 231, 255], @@ -58,77 +63,78 @@ "border": [127, 127, 127, 255], "secondary": [245, 245, 245, 255], - "text": [24, 41, 77, 255], + "topbar_background_color": [255, 255, 255, 0], + "topbar_background_color_monitoring": [255, 255, 255, 255], + + "topbar_button_text_active": [0, 0, 0, 255], + "topbar_button_text_inactive": [128, 128, 128, 255], + "topbar_button_text_hovered": [0, 0, 0, 255], + + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [12, 169, 227, 255], "text_inactive": [174, 174, 174, 255], "text_hover": [70, 84, 113, 255], "text_pressed": [12, 169, 227, 255], - "text_reversed": [255, 255, 255, 255], - "text_subtext": [70, 84, 113, 255], + "text_subtext": [0, 0, 0, 255], + "text_emphasis": [255, 255, 255, 255], + "text_scene": [31, 36, 39, 255], + "text_scene_hover": [70, 84, 113, 255], "error": [255, 140, 0, 255], - "sidebar_header_bar": [24, 41, 77, 255], - "sidebar_header_active": [70, 84, 113, 255], - "sidebar_header_hover": [24, 41, 77, 255], - "sidebar_header_highlight": [12, 169, 227, 255], - "sidebar_header_highlight_hover": [255, 255, 255, 255], + "sidebar_header_bar": [31, 36, 39, 255], + "sidebar_header_active": [68, 72, 75, 255], + "sidebar_header_hover": [68, 72, 75, 255], + "sidebar_header_highlight": [68, 192, 255, 255], + "sidebar_header_highlight_hover": [68, 192, 255, 255], + "sidebar_header_text_inactive": [255, 255, 255, 255], + "sidebar_header_text_active": [255, 255, 255, 255], + "sidebar_header_text_hover": [255, 255, 255, 255], "sidebar_lining": [245, 245, 245, 255], - "button": [24, 41, 77, 255], - "button_hover": [70, 84, 113, 255], - "button_active": [32, 166, 219, 255], - "button_active_hover": [12, 169, 227, 255], + "button": [31, 36, 39, 255], + "button_hover": [68, 72, 75, 255], + "button_active": [68, 72, 75, 255], + "button_active_hover": [68, 72, 75, 255], "button_text": [255, 255, 255, 255], - "button_disabled": [24, 41, 77, 255], - "button_disabled_text": [70, 84, 113, 255], + "button_text_hover": [255, 255, 255, 255], + "button_text_active": [255, 255, 255, 255], + "button_text_active_hover": [255, 255, 255, 255], + "button_disabled": [31, 36, 39, 255], + "button_disabled_text": [255, 255, 255, 101], - "button_tooltip": [255, 255, 255, 255], - "button_tooltip_border": [24, 41, 77, 255], - "button_tooltip_text": [24, 41, 77, 255], + "button_tooltip": [31, 36, 39, 255], + "button_tooltip_border": [68, 192, 255, 255], + "button_tooltip_text": [192, 193, 194, 255], - "toggle_checked": [24, 41, 77, 255], - "toggle_checked_border": [24, 41, 77, 255], - "toggle_checked_text": [255, 255, 255, 255], - "toggle_unchecked": [255, 255, 255, 255], - "toggle_unchecked_border": [127, 127, 127, 255], - "toggle_unchecked_text": [24, 41, 77, 255], - "toggle_hovered": [255, 255, 255, 255], - "toggle_hovered_border": [32, 166, 219, 255], - "toggle_hovered_text": [24, 41, 77, 255], - "toggle_active": [32, 166, 219, 255], - "toggle_active_border": [32, 166, 219, 255], - "toggle_active_text": [24, 41, 77, 255], + "extruder_button_material_border": [255, 255, 255, 255], - "tab_checked": [255, 255, 255, 255], - "tab_checked_border": [255, 255, 255, 255], - "tab_checked_text": [24, 41, 77, 255], - "tab_unchecked": [245, 245, 245, 255], - "tab_unchecked_border": [245, 245, 245, 255], - "tab_unchecked_text": [127, 127, 127, 255], - "tab_hovered": [245, 245, 245, 255], - "tab_hovered_border": [245, 245, 245, 255], - "tab_hovered_text": [32, 166, 219, 255], - "tab_active": [255, 255, 255, 255], - "tab_active_border": [255, 255, 255, 255], - "tab_active_text": [24, 41, 77, 255], - "tab_background": [245, 245, 245, 255], + "sync_button_text": [120, 120, 120, 255], + "sync_button_text_hovered": [0, 0, 0, 255], "action_button": [255, 255, 255, 255], - "action_button_text": [24, 41, 77, 255], + "action_button_text": [0, 0, 0, 255], "action_button_border": [127, 127, 127, 255], "action_button_hovered": [255, 255, 255, 255], - "action_button_hovered_text": [24, 41, 77, 255], + "action_button_hovered_text": [31, 36, 39, 255], "action_button_hovered_border": [12, 169, 227, 255], - "action_button_active": [12, 169, 227, 255], - "action_button_active_text": [255, 255, 255, 255], + "action_button_active": [255, 255, 255, 255], + "action_button_active_text": [0, 0, 0, 255], "action_button_active_border": [12, 169, 227, 255], "action_button_disabled": [245, 245, 245, 255], "action_button_disabled_text": [127, 127, 127, 255], "action_button_disabled_border": [245, 245, 245, 255], + "print_button_ready": [12, 169, 227, 255], + "print_button_ready_border": [12, 169, 227, 255], + "print_button_ready_text": [255, 255, 255, 255], + "print_button_ready_hovered": [30, 186, 245, 243], + "print_button_ready_hovered_border": [30, 186, 245, 243], + "print_button_ready_pressed": [30, 186, 245, 243], + "print_button_ready_pressed_border": [30, 186, 245, 243], + "scrollbar_background": [255, 255, 255, 255], - "scrollbar_handle": [24, 41, 77, 255], + "scrollbar_handle": [31, 36, 39, 255], "scrollbar_handle_hover": [12, 159, 227, 255], "scrollbar_handle_down": [12, 159, 227, 255], @@ -137,7 +143,11 @@ "setting_category_hover": [245, 245, 245, 255], "setting_category_active": [245, 245, 245, 255], "setting_category_active_hover": [245, 245, 245, 255], - "setting_category_text": [24, 41, 77, 255], + "setting_category_text": [31, 36, 39, 255], + "setting_category_disabled_text": [24, 41, 77, 101], + "setting_category_hover_text": [31, 36, 39, 255], + "setting_category_active_text": [31, 36, 39, 255], + "setting_category_active_hover_text": [31, 36, 39, 255], "setting_category_border": [245, 245, 245, 255], "setting_category_disabled_border": [245, 245, 245, 255], "setting_category_hover_border": [12, 159, 227, 255], @@ -145,11 +155,11 @@ "setting_category_active_hover_border": [12, 159, 227, 255], "setting_control": [255, 255, 255, 255], - "setting_control_selected": [24, 41, 77, 255], - "setting_control_highlight": [255, 255, 255, 0], + "setting_control_selected": [31, 36, 39, 255], + "setting_control_highlight": [255, 255, 255, 255], "setting_control_border": [127, 127, 127, 255], "setting_control_border_highlight": [12, 169, 227, 255], - "setting_control_text": [24, 41, 77, 255], + "setting_control_text": [27, 27, 27, 255], "setting_control_depth_line": [127, 127, 127, 255], "setting_control_button": [127, 127, 127, 255], "setting_control_button_hover": [70, 84, 113, 255], @@ -157,50 +167,64 @@ "setting_control_disabled_text": [127, 127, 127, 255], "setting_control_disabled_border": [127, 127, 127, 255], "setting_unit": [127, 127, 127, 255], - "setting_validation_error": [255, 57, 14, 255], - "setting_validation_warning": [255, 186, 15, 255], + "setting_validation_error_background": [255, 66, 60, 255], + "setting_validation_error": [127, 127, 127, 255], + "setting_validation_warning_background": [255, 145, 62, 255], + "setting_validation_warning": [127, 127, 127, 255], "setting_validation_ok": [255, 255, 255, 255], + "material_compatibility_warning": [0, 0, 0, 255], + "progressbar_background": [245, 245, 245, 255], - "progressbar_control": [24, 41, 77, 255], + "progressbar_control": [31, 36, 39, 255], "slider_groove": [245, 245, 245, 255], "slider_groove_border": [127, 127, 127, 255], "slider_groove_fill": [127, 127, 127, 255], - "slider_handle": [32, 166, 219, 255], + "slider_handle": [0, 0, 0, 255], "slider_handle_hover": [77, 182, 226, 255], + "slider_handle_border": [39, 44, 48, 255], "slider_text_background": [255, 255, 255, 255], + "quality_slider_unavailable": [179, 179, 179, 255], + "quality_slider_available": [0, 0, 0, 255], + "quality_slider_handle": [0, 0, 0, 255], + "quality_slider_handle_hover": [127, 127, 127, 255], + "quality_slider_text": [0, 0, 0, 255], + "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], - "checkbox_border": [127, 127, 127, 255], + "checkbox_border": [64, 69, 72, 255], "checkbox_border_hover": [12, 169, 227, 255], - "checkbox_mark": [24, 41, 77, 255], - "checkbox_text": [24, 41, 77, 255], + "checkbox_mark": [119, 122, 124, 255], + "checkbox_text": [27, 27, 27, 255], "mode_switch": [255, 255, 255, 255], "mode_switch_hover": [255, 255, 255, 255], "mode_switch_border": [127, 127, 127, 255], "mode_switch_border_hover": [12, 169, 227, 255], - "mode_switch_handle": [24, 41, 77, 255], - "mode_switch_text": [24, 41, 77, 255], - "mode_switch_text_hover": [24, 41, 77, 255], + "mode_switch_handle": [31, 36, 39, 255], + "mode_switch_text": [31, 36, 39, 255], + "mode_switch_text_hover": [31, 36, 39, 255], "mode_switch_text_checked": [12, 169, 227, 255], - "tooltip": [12, 169, 227, 255], + "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], - "message_background": [24, 41, 77, 255], - "message_text": [255, 255, 255, 255], - "message_border": [24, 41, 77, 255], - "message_button": [255, 255, 255, 255], + "tool_button_border": [255, 255, 255, 0], + + "message_background": [255, 255, 255, 255], + "message_shadow": [0, 0, 0, 120], + "message_border": [127, 127, 127, 255], + "message_text": [0, 0, 0, 255], + "message_button": [12, 169, 227, 255], "message_button_hover": [12, 169, 227, 255], - "message_button_active": [32, 166, 219, 255], - "message_button_text": [24, 41, 77, 255], + "message_button_active": [12, 169, 227, 255], + "message_button_text": [255, 255, 255, 255], "message_button_text_hover": [255, 255, 255, 255], "message_button_text_active": [255, 255, 255, 255], - "message_progressbar_background": [255, 255, 255, 255], - "message_progressbar_control": [12, 169, 227, 255], + "message_progressbar_background": [200, 200, 200, 255], + "message_progressbar_control": [77, 182, 226, 255], "tool_panel_background": [255, 255, 255, 255], @@ -220,7 +244,8 @@ "viewport_background": [245, 245, 245, 255], "volume_outline": [12, 169, 227, 255], "buildplate": [244, 244, 244, 255], - "buildplate_alt": [204, 204, 204, 255], + "buildplate_grid": [129, 131, 134, 255], + "buildplate_grid_minor": [230, 230, 231, 255], "convex_hull": [35, 35, 35, 127], "disallowed_area": [0, 0, 0, 40], @@ -255,9 +280,14 @@ "default_margin": [1.0, 1.0], "default_lining": [0.08, 0.08], "default_arrow": [0.8, 0.8], - "logo": [9.5, 2.0], + "logo": [7.6, 1.6], + + "extruder_button_material_margin": [0.70, 0.9], + "extruder_button_material": [0.75, 0.75], "sidebar": [35.0, 10.0], + "sidebar_margin": [1.71, 1.43], + "sidebar_margin_thin": [0.71, 0.71], "sidebar_header": [0.0, 4.0], "sidebar_header_highlight": [0.25, 0.25], "sidebar_header_mode_toggle": [0.0, 2.0], @@ -271,14 +301,14 @@ "simple_mode_infill_caption": [0.0, 5.0], "simple_mode_infill_height": [0.0, 8.0], - "section": [0.0, 2.0], + "section": [0.0, 2.2], "section_icon": [1.6, 1.6], "section_icon_column": [2.8, 0.0], "setting": [25.0, 1.8], "setting_control": [10.0, 2.0], "setting_control_depth_margin": [1.4, 0.0], - "setting_preferences_button_margin": [3.3, 0.0], + "setting_preferences_button_margin": [4, 0.0], "setting_control_margin": [0.0, 0.0], "setting_unit_margin": [0.5, 0.5], "setting_text_maxwidth": [40.0, 0.0], @@ -291,31 +321,37 @@ "button_icon": [2.5, 2.5], "button_lining": [0, 0], - "topbar_button": [17, 4], + "topbar_logo_right_margin": [3, 0], + "topbar_button": [8, 4], + "topbar_button_icon": [1.2, 1.2], "button_tooltip": [1.0, 1.3], "button_tooltip_arrow": [0.25, 0.25], - "progressbar": [26.0, 0.8], - "progressbar_radius": [0.4, 0.4], - "progressbar_control": [8.0, 0.8], + "tool_button_border": [1.0, 0], + + "progressbar": [26.0, 0.4], + "progressbar_radius": [0, 0], + "progressbar_control": [8.0, 0.4], "scrollbar": [0.75, 0.5], - "slider_groove": [0.5, 0.5], - "slider_handle": [1.5, 1.5], + "quality_slider_bar": [1, 0.2], + + "slider_groove": [0.3, 0.3], + "slider_handle": [1.0, 1.0], "slider_layerview_size": [1.0, 22.0], "slider_layerview_background": [4.0, 0.0], "slider_layerview_margin": [1.0, 1.0], - "layerview_menu_size": [16.5, 21.0], - "layerview_menu_size_compatibility": [22, 23.0], + "layerview_menu_size": [15, 19.5], + "layerview_menu_size_material_color_mode": [15, 15.5], + "layerview_menu_size_compatibility": [22, 22.0], "layerview_legend_size": [1.0, 1.0], "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], "checkbox": [2.0, 2.0], - "mode_switch": [2.0, 1.0], "tooltip": [20.0, 10.0], "tooltip_margins": [1.0, 1.0], @@ -326,16 +362,18 @@ "save_button_specs_icons": [1.4, 1.4], "modal_window_minimum": [60.0, 45], + "license_window_minimum": [45, 45], "wizard_progress": [10.0, 0.0], "message": [30.0, 5.0], - "message_close": [1.25, 1.25], + "message_close": [1, 1], "message_button": [6.0, 1.8], + "message_shadow": [0, 0], + "message_margin": [0, 1.0], + "message_inner_margin": [1.5, 1.5], "infill_button_margin": [0.5, 0.5], - "jobspecs_line": [2.0, 2.0], - - "info_button": [0.6, 0.6] + "jobspecs_line": [2.0, 2.0] } } diff --git a/resources/themes/cura/icons/material_not_selected.svg b/resources/themes/cura/icons/material_not_selected.svg deleted file mode 100644 index 9b3cad88bd..0000000000 --- a/resources/themes/cura/icons/material_not_selected.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - image/svg+xml - - Artboard 3 - - - - - - Artboard 3 - Created with Sketch. - - - - - - - - - - diff --git a/resources/themes/cura/icons/material_selected.svg b/resources/themes/cura/icons/material_selected.svg deleted file mode 100644 index 6589eac416..0000000000 --- a/resources/themes/cura/icons/material_selected.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - image/svg+xml - - Artboard 3 Copy - - - - - - Artboard 3 Copy - Created with Sketch. - - - - - - - - - - diff --git a/resources/themes/cura/icons/notice.svg b/resources/themes/cura/icons/notice.svg deleted file mode 100644 index 263f7bacf1..0000000000 --- a/resources/themes/cura/icons/notice.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_monitor.svg b/resources/themes/cura/icons/tab_monitor.svg deleted file mode 100644 index 2677cec6e2..0000000000 --- a/resources/themes/cura/icons/tab_monitor.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_monitor_with_status.svg b/resources/themes/cura/icons/tab_monitor_with_status.svg deleted file mode 100644 index dc3b373313..0000000000 --- a/resources/themes/cura/icons/tab_monitor_with_status.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/resources/themes/cura/icons/tab_settings.svg b/resources/themes/cura/icons/tab_settings.svg deleted file mode 100644 index 0d90db81ef..0000000000 --- a/resources/themes/cura/icons/tab_settings.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_status_busy.svg b/resources/themes/cura/icons/tab_status_busy.svg deleted file mode 100644 index cb72fdd623..0000000000 --- a/resources/themes/cura/icons/tab_status_busy.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_status_connected.svg b/resources/themes/cura/icons/tab_status_connected.svg deleted file mode 100644 index 16ec7d7523..0000000000 --- a/resources/themes/cura/icons/tab_status_connected.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_status_offline.svg b/resources/themes/cura/icons/tab_status_offline.svg deleted file mode 100644 index 850ca1bc03..0000000000 --- a/resources/themes/cura/icons/tab_status_offline.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_status_paused.svg b/resources/themes/cura/icons/tab_status_paused.svg deleted file mode 100644 index feffb7894c..0000000000 --- a/resources/themes/cura/icons/tab_status_paused.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/tab_status_stopped.svg b/resources/themes/cura/icons/tab_status_stopped.svg deleted file mode 100644 index 86386d3a6b..0000000000 --- a/resources/themes/cura/icons/tab_status_stopped.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/resources/themes/cura/icons/tab_status_unknown.svg b/resources/themes/cura/icons/tab_status_unknown.svg deleted file mode 100644 index 1033b39a4c..0000000000 --- a/resources/themes/cura/icons/tab_status_unknown.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/viewmode.svg b/resources/themes/cura/icons/viewmode.svg deleted file mode 100644 index b270bf0e81..0000000000 --- a/resources/themes/cura/icons/viewmode.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/themes/cura/icons/warning.svg b/resources/themes/cura/icons/warning.svg deleted file mode 100644 index 9269ce20ca..0000000000 --- a/resources/themes/cura/icons/warning.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/themes/cura/images/logo.svg b/resources/themes/cura/images/logo.svg deleted file mode 100644 index ad76518991..0000000000 --- a/resources/themes/cura/images/logo.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/resources/variants/cartesio_0.25.inst.cfg b/resources/variants/cartesio_0.25.inst.cfg index 23179b5c7e..0e082e5afa 100644 --- a/resources/variants/cartesio_0.25.inst.cfg +++ b/resources/variants/cartesio_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/cartesio_0.4.inst.cfg b/resources/variants/cartesio_0.4.inst.cfg index ad8d98519e..27d07c0328 100644 --- a/resources/variants/cartesio_0.4.inst.cfg +++ b/resources/variants/cartesio_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/cartesio_0.8.inst.cfg b/resources/variants/cartesio_0.8.inst.cfg index c5bc386558..e96c78d922 100644 --- a/resources/variants/cartesio_0.8.inst.cfg +++ b/resources/variants/cartesio_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/fabtotum_hyb35.inst.cfg b/resources/variants/fabtotum_hyb35.inst.cfg new file mode 100644 index 0000000000..01e94728da --- /dev/null +++ b/resources/variants/fabtotum_hyb35.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Hybrid 0.35 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.35 +retraction_speed = 23 +retraction_amount = 2.5 +retraction_count_max = 25 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_lite04.inst.cfg b/resources/variants/fabtotum_lite04.inst.cfg new file mode 100644 index 0000000000..ee270a9ead --- /dev/null +++ b/resources/variants/fabtotum_lite04.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Lite 0.4 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.4 +retraction_speed = 23 +retraction_amount = 2.5 +retraction_count_max = 25 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_lite06.inst.cfg b/resources/variants/fabtotum_lite06.inst.cfg new file mode 100644 index 0000000000..49722a50d1 --- /dev/null +++ b/resources/variants/fabtotum_lite06.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Lite 0.6 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.6 +retraction_speed = 23 +retraction_amount = 2.5 +retraction_count_max = 25 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_pro02.inst.cfg b/resources/variants/fabtotum_pro02.inst.cfg new file mode 100644 index 0000000000..376588fe71 --- /dev/null +++ b/resources/variants/fabtotum_pro02.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Pro 0.2 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.2 +retraction_speed = 48 +retraction_amount = 1.0 +retraction_count_max = 50 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_pro04.inst.cfg b/resources/variants/fabtotum_pro04.inst.cfg new file mode 100644 index 0000000000..54294c572c --- /dev/null +++ b/resources/variants/fabtotum_pro04.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Pro 0.4 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.4 +retraction_speed = 48 +retraction_amount = 1.0 +retraction_count_max = 50 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_pro06.inst.cfg b/resources/variants/fabtotum_pro06.inst.cfg new file mode 100644 index 0000000000..f1055b6ade --- /dev/null +++ b/resources/variants/fabtotum_pro06.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Pro 0.6 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.6 +retraction_speed = 48 +retraction_amount = 1.0 +retraction_count_max = 50 +retraction_min_travel = 0.1 diff --git a/resources/variants/fabtotum_pro08.inst.cfg b/resources/variants/fabtotum_pro08.inst.cfg new file mode 100644 index 0000000000..ef7eb172be --- /dev/null +++ b/resources/variants/fabtotum_pro08.inst.cfg @@ -0,0 +1,16 @@ +[general] +name = Pro 0.8 mm +version = 2 +definition = fabtotum + +[metadata] +author = FABtotum +type = variant +setting_version = 4 + +[values] +machine_nozzle_size = 0.8 +retraction_speed = 48 +retraction_amount = 1.0 +retraction_count_max = 50 +retraction_min_travel = 0.1 diff --git a/resources/variants/imade3d_jellybox_0.4.inst.cfg b/resources/variants/imade3d_jellybox_0.4.inst.cfg index b590dec264..ce9e82e59a 100644 --- a/resources/variants/imade3d_jellybox_0.4.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg index 419506c908..60f9793b2a 100644 --- a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.25.inst.cfg b/resources/variants/ultimaker2_0.25.inst.cfg index d2d4abc7d4..04084867dd 100644 --- a/resources/variants/ultimaker2_0.25.inst.cfg +++ b/resources/variants/ultimaker2_0.25.inst.cfg @@ -6,8 +6,9 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.25 machine_nozzle_tip_outer_diameter = 0.8 +raft_airgap = 0.25 \ No newline at end of file diff --git a/resources/variants/ultimaker2_0.4.inst.cfg b/resources/variants/ultimaker2_0.4.inst.cfg index 325eb04040..f21d85e258 100644 --- a/resources/variants/ultimaker2_0.4.inst.cfg +++ b/resources/variants/ultimaker2_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.6.inst.cfg b/resources/variants/ultimaker2_0.6.inst.cfg index 6fb8005ed0..04128cc297 100644 --- a/resources/variants/ultimaker2_0.6.inst.cfg +++ b/resources/variants/ultimaker2_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_0.8.inst.cfg b/resources/variants/ultimaker2_0.8.inst.cfg index 7c256b9416..400069d60b 100644 --- a/resources/variants/ultimaker2_0.8.inst.cfg +++ b/resources/variants/ultimaker2_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_0.25.inst.cfg b/resources/variants/ultimaker2_extended_0.25.inst.cfg index 4e248c55c4..bdff9a5795 100644 --- a/resources/variants/ultimaker2_extended_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_0.4.inst.cfg b/resources/variants/ultimaker2_extended_0.4.inst.cfg index 01adecceeb..2af9a75024 100644 --- a/resources/variants/ultimaker2_extended_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_0.6.inst.cfg b/resources/variants/ultimaker2_extended_0.6.inst.cfg index a93ce8f628..e0753f1c28 100644 --- a/resources/variants/ultimaker2_extended_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_0.8.inst.cfg b/resources/variants/ultimaker2_extended_0.8.inst.cfg index 9588d017ec..43c033b799 100644 --- a/resources/variants/ultimaker2_extended_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg index fa5861ea6d..7f1bff4b0c 100644 --- a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg index ef0bed8305..f6747d059d 100644 --- a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg index 643b0d3d8c..706e4b8aa6 100644 --- a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg index a282b288a2..287c3155b8 100644 --- a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_plus_0.25.inst.cfg b/resources/variants/ultimaker2_plus_0.25.inst.cfg index 14d8d5d899..1d4617c86b 100644 --- a/resources/variants/ultimaker2_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.25.inst.cfg @@ -6,13 +6,14 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] +coasting_min_volume = 0.17 +coasting_volume = 0.1 machine_nozzle_size = 0.25 machine_nozzle_tip_outer_diameter = 0.8 -coasting_volume = 0.1 -coasting_min_volume = 0.17 +raft_airgap = 0.25 +speed_topbottom = =round(speed_print / 1.5, 1) speed_wall = =round(speed_print / 1.2, 1) speed_wall_0 = =1 if speed_wall < 5 else (speed_wall - 5) -speed_topbottom = =round(speed_print / 1.5, 1) diff --git a/resources/variants/ultimaker2_plus_0.4.inst.cfg b/resources/variants/ultimaker2_plus_0.4.inst.cfg index ccc1d246a0..75a665ad95 100644 --- a/resources/variants/ultimaker2_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_plus_0.6.inst.cfg b/resources/variants/ultimaker2_plus_0.6.inst.cfg index 40c1f523a8..60bbbaa049 100644 --- a/resources/variants/ultimaker2_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_plus_0.8.inst.cfg b/resources/variants/ultimaker2_plus_0.8.inst.cfg index 563b955063..339b320af3 100644 --- a/resources/variants/ultimaker2_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker3_aa0.25.inst.cfg b/resources/variants/ultimaker3_aa0.25.inst.cfg new file mode 100644 index 0000000000..ebb584f674 --- /dev/null +++ b/resources/variants/ultimaker3_aa0.25.inst.cfg @@ -0,0 +1,40 @@ +[general] +name = AA 0.25 +version = 2 +definition = ultimaker3 + +[metadata] +author = ultimaker +type = variant +setting_version = 4 + +[values] +brim_width = 7 +infill_line_width = 0.23 +infill_overlap = 0 +layer_height_0 = 0.17 +line_width = 0.23 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +raft_interface_thickness = =layer_height * 1.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_min_travel = 0.7 +skin_overlap = 15 +speed_layer_0 = 20 +speed_print = 55 +speed_topbottom = 20 +speed_wall = =math.ceil(speed_print * 30 / 55) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_line_width_x = 0.23 +wall_thickness = 1.3 + diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index 1e8366c765..de7dfcc364 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index dfdd57a075..289ae185b0 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] brim_width = 7 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index ddb1aa3c7e..2cb3103dcf 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -24,6 +24,7 @@ infill_overlap = 0 infill_pattern = triangles infill_wipe_dist = 0 jerk_enabled = True +jerk_prime_tower = =math.ceil(jerk_print * 2 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) @@ -38,6 +39,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False +prime_tower_purge_volume = 1 prime_tower_wipe_enabled = True raft_acceleration = =acceleration_layer_0 raft_airgap = 0 diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index b5698dea54..5dc0b2832a 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) @@ -14,15 +14,20 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000) acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / 1500) cool_fan_speed_max = =cool_fan_speed gradual_support_infill_steps = 2 +jerk_prime_tower = =math.ceil(jerk_print * 2 / 25) jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = BB 0.4 +prime_tower_purge_volume = 1 raft_base_speed = 20 raft_interface_speed = 20 raft_speed = 25 +retraction_amount = 4.5 +retraction_count_max = 20 retraction_extrusion_window = =retraction_amount +retraction_min_travel = =3 * line_width speed_layer_0 = 20 speed_support = =math.ceil(speed_print * 25 / 35) speed_support_interface = =math.ceil(speed_support * 20 / 25) @@ -41,3 +46,4 @@ support_line_width = =round(line_width * 0.4 / 0.35, 2) support_offset = 3 support_xy_distance = =round(wall_line_width_0 * 0.75, 2) support_xy_distance_overhang = =wall_line_width_0 / 2 +switch_extruder_retraction_amount = 12 \ No newline at end of file diff --git a/resources/variants/ultimaker3_extended_aa0.25.inst.cfg b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg new file mode 100644 index 0000000000..631768346e --- /dev/null +++ b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg @@ -0,0 +1,40 @@ +[general] +name = AA 0.25 +version = 2 +definition = ultimaker3_extended + +[metadata] +author = ultimaker +type = variant +setting_version = 4 + +[values] +brim_width = 7 +infill_line_width = 0.23 +infill_overlap = 0 +layer_height_0 = 0.17 +line_width = 0.23 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +raft_interface_thickness = =layer_height * 1.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_min_travel = 0.7 +skin_overlap = 15 +speed_layer_0 = 20 +speed_print = 55 +speed_topbottom = 20 +speed_wall = =math.ceil(speed_print * 30 / 55) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_line_width_x = 0.23 +wall_thickness = 1.3 + diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 59b057186e..b2ad86ff01 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index 94a13f2e74..fdea4de08c 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] brim_width = 7 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index 55ed280f36..6ab16c4f10 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_enabled = True @@ -24,6 +24,7 @@ infill_overlap = 0 infill_pattern = triangles infill_wipe_dist = 0 jerk_enabled = True +jerk_prime_tower = =math.ceil(jerk_print * 2 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) @@ -38,6 +39,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False +prime_tower_purge_volume = 1 prime_tower_wipe_enabled = True raft_acceleration = =acceleration_layer_0 raft_airgap = 0 diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index 7393b0a24a..ee2f138754 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 2 +setting_version = 4 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) @@ -14,15 +14,20 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000) acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / 1500) cool_fan_speed_max = =cool_fan_speed gradual_support_infill_steps = 2 +jerk_prime_tower = =math.ceil(jerk_print * 2 / 25) jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = BB 0.4 +prime_tower_purge_volume = 1 raft_base_speed = 20 raft_interface_speed = 20 raft_speed = 25 +retraction_amount = 4.5 +retraction_count_max = 20 retraction_extrusion_window = =retraction_amount +retraction_min_travel = =3 * line_width speed_layer_0 = 20 speed_support = =math.ceil(speed_print * 25 / 35) speed_support_interface = =math.ceil(speed_support * 20 / 25) @@ -41,3 +46,4 @@ support_line_width = =round(line_width * 0.4 / 0.35, 2) support_offset = 3 support_xy_distance = =round(wall_line_width_0 * 0.75, 2) support_xy_distance_overhang = =wall_line_width_0 / 2 +switch_extruder_retraction_amount = 12 \ No newline at end of file diff --git a/setup.py b/setup.py index 1eeca36ed6..a91ba535d5 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ # Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. from distutils.core import setup import py2exe @@ -45,7 +45,7 @@ setup(name="Cura", author="Ultimaker", author_email="a.hiemstra@ultimaker.com", url="http://software.ultimaker.com/", - license="GNU AFFERO GENERAL PUBLIC LICENSE (AGPL)", + license="GNU LESSER GENERAL PUBLIC LICENSE (LGPL)", scripts=["cura_app.py"], windows=[{"script": "cura_app.py", "dest_name": "Cura", "icon_resources": [(1, "icons/cura.ico")]}], #console=[{"script": "cura_app.py"}], diff --git a/tests/Settings/TestCuraContainerRegistry.py b/tests/Settings/TestCuraContainerRegistry.py index 11e772c3b7..a6d33afc6d 100644 --- a/tests/Settings/TestCuraContainerRegistry.py +++ b/tests/Settings/TestCuraContainerRegistry.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import os #To find the directory with test files and find the test files. import pytest #This module contains unit tests. diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py index 4cafde5127..6ed2c6649b 100644 --- a/tests/Settings/TestExtruderStack.py +++ b/tests/Settings/TestExtruderStack.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import pytest #This module contains automated tests. import unittest.mock #For the mocking and monkeypatching functionality. @@ -251,7 +251,7 @@ def test_getPropertyFallThrough(extruder_stack): for type_id, type_name in container_indices.IndexTypeMap.items(): container = unittest.mock.MagicMock() # Return type_id when asking for value and -1 when asking for limit_to_extruder - container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. + container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. container.hasProperty = lambda key, property: key == "layer_height" container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) mock_layer_heights[type_id] = container diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index c6491d574c..afd3d2b425 100755 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +# Cura is released under the terms of the LGPLv3 or higher. import pytest #This module contains unit tests. import unittest.mock #To monkeypatch some mocks in place of dependencies. @@ -63,7 +63,7 @@ def test_addContainer(global_stack): ## Tests adding extruders to the global stack. def test_addExtruder(global_stack): mock_definition = unittest.mock.MagicMock() - mock_definition.getProperty = lambda key, property: 2 if key == "machine_extruder_count" and property == "value" else None + mock_definition.getProperty = lambda key, property, context = None: 2 if key == "machine_extruder_count" and property == "value" else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): global_stack.definition = mock_definition @@ -318,7 +318,7 @@ def test_getPropertyFallThrough(global_stack): container_indexes = cura.Settings.CuraContainerStack._ContainerIndexes #Cache. for type_id, type_name in container_indexes.IndexTypeMap.items(): container = unittest.mock.MagicMock() - container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. + container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. container.hasProperty = lambda key, property: key == "layer_height" container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) mock_layer_heights[type_id] = container @@ -355,7 +355,7 @@ def test_getPropertyFallThrough(global_stack): ## In definitions, test whether having no resolve allows us to find the value. def test_getPropertyNoResolveInDefinition(global_stack): value = unittest.mock.MagicMock() #Just sets the value for bed temperature. - value.getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None + value.getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = value @@ -365,7 +365,7 @@ def test_getPropertyNoResolveInDefinition(global_stack): # must get the resolve first. def test_getPropertyResolveInDefinition(global_stack): resolve_and_value = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. - resolve_and_value.getProperty = lambda key, property: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. + resolve_and_value.getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = resolve_and_value @@ -378,9 +378,9 @@ def test_getPropertyResolveInInstance(global_stack): instance_containers = {} for container_type in container_indices.IndexTypeMap: instance_containers[container_type] = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. - instance_containers[container_type].getProperty = lambda key, property: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. + instance_containers[container_type].getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. instance_containers[container_type].getMetaDataEntry = unittest.mock.MagicMock(return_value = container_indices.IndexTypeMap[container_type]) #Make queries for the type return the desired type. - instance_containers[container_indices.Definition].getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. + instance_containers[container_indices.Definition].getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = instance_containers[container_indices.Definition] #Stack must have a definition. @@ -402,10 +402,10 @@ def test_getPropertyResolveInInstance(global_stack): # definitions. def test_getPropertyInstancesBeforeResolve(global_stack): value = unittest.mock.MagicMock() #Sets just the value. - value.getProperty = lambda key, property: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None + value.getProperty = lambda key, property, context = None: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None value.getMetaDataEntry = unittest.mock.MagicMock(return_value = "quality") resolve = unittest.mock.MagicMock() #Sets just the resolve. - resolve.getProperty = lambda key, property: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None + resolve.getProperty = lambda key, property, context = None: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = resolve diff --git a/tests/TestMachineAction.py b/tests/TestMachineAction.py index 8a38668aaf..0118874a0b 100755 --- a/tests/TestMachineAction.py +++ b/tests/TestMachineAction.py @@ -1,6 +1,8 @@ #Todo: Write tests import pytest +# QtApplication needs to be imported first to prevent import errors. +from UM.Qt.QtApplication import QtApplication from cura.MachineAction import MachineAction from cura.MachineActionManager import MachineActionManager, NotUniqueMachineActionError, UnknownMachineActionError