mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-30 21:15:13 +08:00
💋 Sync 2026-10-04 04:16:09
This commit is contained in:
1 parent
f6b2df73ec
commit
f62992fd80
745 files changed
+212416
-1173
No files matched your search
Executable
+663
@@ -0,0 +1,663 @@
|
||||
Copyright (C) 2026 permails <https://github.com/permails/luci-app-diskbox>
|
||||
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
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.
|
||||
|
||||
LuCI DiskBox (luci-app-diskbox) - Modern Disk & Partition Manager for OpenWrt LuCI.
|
||||
Copyright (C) 2026 permails <https://github.com/permails/luci-app-diskbox>
|
||||
|
||||
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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
<https://www.gnu.org/licenses/>.
|
||||
@@ -0,0 +1,57 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-diskbox
|
||||
LUCI_NAME:=luci-app-diskbox
|
||||
PKG_VERSION:=1.26.9
|
||||
PKG_RELEASE:=1
|
||||
PKG_MAINTAINER:=permails <https://github.com/permails/luci-app-diskbox>
|
||||
PKG_LICENSE:=AGPL-3.0
|
||||
|
||||
LUCI_TITLE:=DiskBox - Modern Disk Manager interface for LuCI
|
||||
LUCI_DEPENDS:=+e2fsprogs +parted +smartmontools +blkid \
|
||||
+kmod-fs-vfat +dosfstools +kmod-fs-msdos +kmod-nls-base +kmod-nls-utf8 +kmod-nls-cp932 +kmod-nls-cp936 +kmod-nls-cp950 \
|
||||
+kmod-fs-exfat +exfat-mkfs +exfat-fsck \
|
||||
+kmod-fs-ntfs3 \
|
||||
+kmod-fs-btrfs \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_ntfs_3g_utils:ntfs-3g-utils \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_btrfs_progs:btrfs-progs \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_lsblk:lsblk \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_mdadm:mdadm \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_raid456:mdadm \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_raid456:kmod-md-raid456 \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_linears:mdadm \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_linears:kmod-md-linear \
|
||||
+luci-base
|
||||
|
||||
LUCI_DESCRIPTION:=Modern Disk and Partition Manager interface for OpenWrt LuCI (JavaScript client-rendered, no luci-compat required)
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_ntfs_3g_utils
|
||||
depends on PACKAGE_$(PKG_NAME)
|
||||
bool "Include ntfs-3g-utils"
|
||||
default y
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_btrfs_progs
|
||||
depends on PACKAGE_$(PKG_NAME)
|
||||
bool "Include btrfs-progs"
|
||||
default y
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_lsblk
|
||||
depends on PACKAGE_$(PKG_NAME)
|
||||
bool "Include lsblk"
|
||||
default y
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_mdadm
|
||||
depends on PACKAGE_$(PKG_NAME)
|
||||
bool "Include mdadm"
|
||||
default n
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_raid456
|
||||
depends on PACKAGE_$(PKG_NAME)_INCLUDE_mdadm
|
||||
bool "Include kmod-md-raid456"
|
||||
default n
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_kmod_md_linears
|
||||
depends on PACKAGE_$(PKG_NAME)_INCLUDE_mdadm
|
||||
bool "Include kmod-md-linear"
|
||||
default n
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
@@ -0,0 +1,108 @@
|
||||
# LuCI DiskBox (`luci-app-diskbox`)
|
||||
|
||||
**A Modern Disk, Partition, RAID & Btrfs Manager for OpenWrt LuCI**
|
||||
|
||||
`luci-app-diskbox` is a standalone, lightweight, and modern disk management application designed for OpenWrt 21.02 / 23.05 / 24.10 / Master. Built with pure JavaScript client-side rendering and a dedicated RPCD backend, it operates smoothly without requiring `luci-compat`.
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
### 1. Storage Device Overview & S.M.A.R.T. Health
|
||||
- **Multi-Device Support**: Full recognition of SCSI/SATA (`/dev/sd*`), NVMe (`/dev/nvme*`), MMC/eMMC (`/dev/mmcblk*`), and VirtIO (`/dev/vd*`) block storage devices.
|
||||
- **Health & Temperature Monitoring**: Real-time S.M.A.R.T attribute scanning with critical bad-sector (05/C5) warnings and eMMC life-cycle/wear-level detection.
|
||||
- **Visual Partition Usage**: Color-coded proportional capacity bars representing partition layouts.
|
||||
- **Safe Ejection**: One-click software detachment (`sync` & SCSI device deletion) before physical unplugging to prevent kernel panics.
|
||||
|
||||
### 2. Partition Management
|
||||
- **Partition Table Operations**: Initialize and switch between GPT and MBR partition tables.
|
||||
- **Partition Creation**: Support for optimal 2048-sector alignment and human-readable capacity input in End Sector (`+500M`, `+10G`, `+1T`).
|
||||
- **Safety Protection**: Accurate detection of MBR extended partitions and prevention of accidental deletion or formatting while logical partitions or mount points are active.
|
||||
- **Multi-Filesystem Formatting**: Format partitions to `ext2`, `ext3`, `ext4`, `fat32`, `exfat`, `ntfs`, `btrfs`, or `swap`.
|
||||
|
||||
### 3. Software RAID (mdadm)
|
||||
- **Array Creation**: Support for Linear, RAID 0, RAID 1, RAID 5, RAID 6, and RAID 10.
|
||||
- **Dynamic Selection**: Standard LuCI dropdown menus to select member devices and partitions.
|
||||
- **Auto Configuration**: Automatically generates UCI configurations and loads arrays upon system boot.
|
||||
|
||||
### 4. Btrfs Multi-Device & Snapshot Management
|
||||
- **Filesystem Creation**: Support for multi-device Btrfs pools (`single`, `raid0`, `raid1`, `raid10`, `dup`).
|
||||
- **Subvolumes**: Create, delete, and set default subvolumes.
|
||||
- **Snapshots**: Fast creation of read-only or read-write snapshots with custom source and destination paths.
|
||||
|
||||
### 5. Mount Points
|
||||
- **Active Mount Inspection**: Displays real-time mount paths and active mount options.
|
||||
- **Quick Mount & Umount**: Easily mount unused partitions or unmount active mount points.
|
||||
|
||||
### 6. Internationalization (i18n)
|
||||
- Seamless dynamic language switching following OpenWrt system language (English, Simplified Chinese, Traditional Chinese, Polish).
|
||||
|
||||
---
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```text
|
||||
luci-app-diskbox/
|
||||
├── Makefile # OpenWrt package Makefile
|
||||
├── htdocs/ # Pure JavaScript frontend views
|
||||
│ └── luci-static/resources/view/diskbox/
|
||||
│ ├── disks.js # Overview, RAID, Btrfs & Mount points
|
||||
│ ├── partition.js # Partition management & formatting
|
||||
│ └── btrfs.js # Btrfs detail & snapshot view
|
||||
├── root/ # RPCD backend and LuCI menu declarations
|
||||
│ ├── etc/uci-defaults/99-luci-app-diskbox
|
||||
│ ├── usr/libexec/rpcd/luci.diskbox
|
||||
│ └── usr/share/
|
||||
│ ├── luci/menu.d/luci-app-diskbox.json
|
||||
│ └── rpcd/acl.d/luci-app-diskbox.json
|
||||
├── po/ # i18n translation catalogs
|
||||
│ ├── templates/diskbox.pot
|
||||
│ ├── zh-cn/diskbox.po
|
||||
│ ├── zh-tw/diskbox.po
|
||||
│ └── pl/diskbox.po
|
||||
├── LICENSE
|
||||
└── README.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build from Source
|
||||
|
||||
Clone the repository directly into your OpenWrt buildroot's `package` directory:
|
||||
|
||||
```bash
|
||||
# Navigate to your OpenWrt source root
|
||||
cd openwrt
|
||||
|
||||
# Clone luci-app-diskbox
|
||||
git clone https://github.com/permails/luci-app-diskbox.git package/luci-app-diskbox
|
||||
|
||||
# Update feeds and select in menuconfig
|
||||
./scripts/feeds update -a
|
||||
./scripts/feeds install -a
|
||||
make menuconfig
|
||||
```
|
||||
|
||||
Select the package in `menuconfig`:
|
||||
```text
|
||||
LuCI --->
|
||||
3. Applications --->
|
||||
<*> luci-app-diskbox................... Modern Disk Manager interface for LuCI
|
||||
```
|
||||
|
||||
Compile the package:
|
||||
```bash
|
||||
make package/luci-app-diskbox/compile V=s
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Author
|
||||
|
||||
- **permails** ([https://github.com/permails/luci-app-diskbox](https://github.com/permails/luci-app-diskbox))
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the [AGPL-3.0 License](LICENSE).
|
||||
@@ -0,0 +1,702 @@
|
||||
/**
|
||||
* luci-app-diskbox — Modern Storage Manager component styles
|
||||
* Ported from the DESIGN_SPEC demo. Built purely on top of OpenWrt 25
|
||||
* cascade.css (uses only tokens cascade.css already defines, so light/dark
|
||||
* themes both adapt). Does NOT override standard LuCI buttons, form
|
||||
* controls, or the CBI value layout — only adds the partition-map / card
|
||||
* / table-typography components.
|
||||
*/
|
||||
|
||||
/* Visual Partition Map Component */
|
||||
/* Option B: Modern Storage Manager Partition Cards (群晖 DSM / TrueNAS 风格) */
|
||||
.disk-partition-card {
|
||||
background: var(--background-color-high);
|
||||
border: 1px solid var(--border-color-low);
|
||||
border-radius: 6px;
|
||||
padding: 12px 16px;
|
||||
margin-bottom: 14px;
|
||||
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
||||
}
|
||||
|
||||
.disk-partition-card:hover {
|
||||
border-color: var(--border-color-medium);
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.disk-part-card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.disk-part-card-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.disk-bus-badge {
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
padding: 1px 6px;
|
||||
border-radius: 3px;
|
||||
background: var(--background-color-medium);
|
||||
border: 1px solid var(--border-color-high);
|
||||
color: var(--text-color-high);
|
||||
letter-spacing: 0.5px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.disk-part-path {
|
||||
font-size: 13px;
|
||||
color: var(--text-color-highest);
|
||||
}
|
||||
|
||||
.disk-part-model {
|
||||
color: var(--text-color-medium);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.disk-part-spec {
|
||||
color: var(--text-color-low);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.disk-part-card-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
font-size: 12px;
|
||||
color: var(--text-color-medium);
|
||||
}
|
||||
|
||||
.disk-meta-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* Slender, refined 14px pill partition bar */
|
||||
.disk-partition-bar {
|
||||
width: 100%;
|
||||
height: 14px;
|
||||
background-color: var(--background-color-medium);
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 7px;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
margin: 8px 0 10px 0;
|
||||
}
|
||||
|
||||
.part-segment {
|
||||
height: 100%;
|
||||
min-width: 90px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 4px;
|
||||
color: #ffffff;
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
border-right: 1px solid rgba(255, 255, 255, 0.4);
|
||||
transition: filter 0.15s ease, opacity 0.15s ease;
|
||||
user-select: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.part-segment:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.part-segment:hover {
|
||||
filter: brightness(1.15);
|
||||
}
|
||||
|
||||
/* Five-state semantic partition palette (DESIGN_SPEC) — fixed hues so the
|
||||
state reads the same in light and dark. */
|
||||
.part-state-boot {
|
||||
background-color: #546e7a !important; /* Muted Slate - System/Boot */
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.part-state-inuse {
|
||||
background-color: #1e88e5 !important; /* Clean Modern Blue - Mounted */
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.part-state-unmounted {
|
||||
background-color: #f59e0b !important; /* Soft Amber - Unmounted */
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.part-state-raw {
|
||||
background-color: #94a3b8 !important; /* Neutral Cool Gray - Empty/Raw */
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.part-state-unalloc {
|
||||
background-color: #f1f5f9 !important;
|
||||
color: #64748b !important;
|
||||
background-image: repeating-linear-gradient(
|
||||
45deg,
|
||||
rgba(0, 0, 0, 0.02),
|
||||
rgba(0, 0, 0, 0.02) 6px,
|
||||
rgba(0, 0, 0, 0.05) 6px,
|
||||
rgba(0, 0, 0, 0.05) 12px
|
||||
) !important;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.part-state-unalloc:hover {
|
||||
background-color: #e2e8f0 !important;
|
||||
}
|
||||
|
||||
/* Refined Partition Legend */
|
||||
.disk-partition-legend {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
margin-bottom: 12px;
|
||||
font-size: 12px;
|
||||
color: var(--text-color-medium);
|
||||
padding: 7px 14px;
|
||||
background: var(--background-color-medium);
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--border-color-low);
|
||||
}
|
||||
|
||||
.legend-item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.legend-color-dot {
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
border-radius: 2px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Segment Tooltip */
|
||||
.part-tooltip {
|
||||
position: absolute;
|
||||
bottom: calc(100% + 6px);
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: var(--text-color-highest);
|
||||
color: var(--background-color-high);
|
||||
padding: 6px 10px;
|
||||
border-radius: 3px;
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
|
||||
z-index: 50;
|
||||
pointer-events: none;
|
||||
display: none;
|
||||
line-height: 1.4;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.part-tooltip::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border-width: 4px;
|
||||
border-style: solid;
|
||||
border-color: var(--text-color-highest) transparent transparent transparent;
|
||||
}
|
||||
|
||||
.part-segment:hover .part-tooltip {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Health and SMART Link */
|
||||
.smart-status-link {
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.smart-status-link.passed {
|
||||
color: var(--success-color-high);
|
||||
}
|
||||
.smart-status-link.warning {
|
||||
color: var(--warn-color-high);
|
||||
}
|
||||
.smart-status-link.failed {
|
||||
color: var(--error-color-high);
|
||||
}
|
||||
|
||||
/* Hardware Info Two-Column Grid */
|
||||
.hw-info-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||
gap: 8px 24px;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.hw-info-entry {
|
||||
padding: 6px 0;
|
||||
border-bottom: 1px solid var(--border-color-low);
|
||||
}
|
||||
|
||||
.hw-info-label {
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.4px;
|
||||
color: var(--text-color-medium);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.hw-info-value {
|
||||
font-size: 13px;
|
||||
color: var(--text-color-highest);
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
/* Command preview in modal */
|
||||
.command-preview-box {
|
||||
background: var(--background-color-medium);
|
||||
color: var(--primary-color-low);
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
padding: 8px 12px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid var(--border-color-high);
|
||||
margin: 8px 0;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
|
||||
/* OpenWrt Standard Tabs (选项卡标签) - NOT bold, NOT enlarged, 100% Native Font */
|
||||
.cbi-tabmenu,
|
||||
.cbi-tabmenu.map,
|
||||
.tabs {
|
||||
margin: 0 0 16px 0 !important;
|
||||
padding: 0 2px !important;
|
||||
font-family: var(--font-sans) !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu > li,
|
||||
.cbi-tabmenu.map > li,
|
||||
.tabs > li {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: normal !important;
|
||||
height: 25px !important;
|
||||
line-height: 25px !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu > li > a,
|
||||
.cbi-tabmenu.map > li > a,
|
||||
.tabs > li > a {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: normal !important;
|
||||
line-height: 18px !important;
|
||||
padding: 4px 8px !important;
|
||||
}
|
||||
|
||||
/* Table headers strictly left-aligned (matching body cells), OpenWrt native font, NOT bold, NOT enlarged */
|
||||
.th.cbi-section-actions,
|
||||
.table.cbi-section-table .th,
|
||||
.disk-card-table .th,
|
||||
.partition-master-table .th {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: normal !important;
|
||||
background-color: var(--background-color-medium) !important;
|
||||
border-bottom: 2px solid var(--border-color-high) !important;
|
||||
text-align: left !important;
|
||||
white-space: nowrap !important;
|
||||
vertical-align: middle !important;
|
||||
line-height: 18px !important;
|
||||
}
|
||||
|
||||
/* Table body cell contents strictly left-aligned, OpenWrt native font, NOT bold, NOT enlarged */
|
||||
.td.cbi-section-actions,
|
||||
.table.cbi-section-table .td,
|
||||
.disk-card-table .td,
|
||||
.partition-master-table .td {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: normal !important;
|
||||
vertical-align: middle !important;
|
||||
padding: 8px 8px !important;
|
||||
box-sizing: border-box !important;
|
||||
overflow: hidden !important;
|
||||
line-height: 18px !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
/* Overview table (physical disks): keep every cell on a single line. The
|
||||
wrapping container carries overflow-x:auto, so it scrolls rather than wraps. */
|
||||
.disk-overview-table .td {
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
/* Actions column of the Physical Disks table. The guaranteed width comes from
|
||||
the fixed-width <col> (180px) emitted in disks.js — a %-width column plus the
|
||||
table's min-width lets Chromium keep the column narrower than the cell's
|
||||
min-width, which clips the "Manage Partitions" button. This min-width is a
|
||||
harmless fallback in case that col is ever reverted to a percentage. */
|
||||
.disk-overview-table .td.cbi-section-actions {
|
||||
min-width: 175px;
|
||||
}
|
||||
|
||||
/* Ensure no artificial bolding in tables */
|
||||
.table strong,
|
||||
.disk-card-table strong,
|
||||
.partition-master-table strong,
|
||||
.cbi-section-table strong {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
/* Universal OpenWrt Native Font for ALL tables and ALL table contents */
|
||||
.table,
|
||||
.table *,
|
||||
.disk-card-table,
|
||||
.disk-card-table *,
|
||||
.partition-master-table,
|
||||
.partition-master-table *,
|
||||
.cbi-section-table,
|
||||
.cbi-section-table * {
|
||||
font-family: var(--font-sans) !important;
|
||||
}
|
||||
|
||||
.table code,
|
||||
.disk-card-table code,
|
||||
.partition-master-table code,
|
||||
.cbi-section-table code {
|
||||
font-family: var(--font-sans) !important;
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
padding: 0 !important;
|
||||
color: inherit !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
/* Inline table mount dropdown & input controls */
|
||||
.table select.cbi-input-select,
|
||||
.disk-card-table select.cbi-input-select {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: normal !important;
|
||||
height: 26px !important;
|
||||
padding: 2px 6px !important;
|
||||
box-sizing: border-box !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.table input.cbi-input-text,
|
||||
.disk-card-table input.cbi-input-text {
|
||||
font-family: var(--font-sans) !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: normal !important;
|
||||
height: 26px !important;
|
||||
padding: 2px 6px !important;
|
||||
box-sizing: border-box !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
/* Action buttons strictly in a single horizontal row, left-aligned */
|
||||
.td.cbi-section-actions .btn-group-actions,
|
||||
.td.cbi-section-actions > div {
|
||||
display: inline-flex !important;
|
||||
flex-direction: row !important;
|
||||
flex-wrap: nowrap !important;
|
||||
gap: 6px !important;
|
||||
justify-content: flex-start !important;
|
||||
align-items: center !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
.td.cbi-section-actions .btn {
|
||||
white-space: nowrap !important;
|
||||
display: inline-block !important;
|
||||
margin: 0 !important;
|
||||
flex: 0 0 auto !important;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Unified Master Partition Table & Strict Column Alignment
|
||||
========================================================================== */
|
||||
.disk-card-table,
|
||||
.partition-master-table {
|
||||
table-layout: fixed !important;
|
||||
width: 100% !important;
|
||||
border-collapse: collapse !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.disk-card-table .col-device,
|
||||
.disk-card-table .col-fs,
|
||||
.disk-card-table .col-mount,
|
||||
.disk-card-table .col-size,
|
||||
.disk-card-table .col-automount,
|
||||
.disk-card-table .col-actions {
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
.disk-card-table .col-mount {
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
}
|
||||
|
||||
.disk-card-table .cbi-progressbar {
|
||||
min-width: 0 !important;
|
||||
width: 80px !important;
|
||||
max-width: 80px !important;
|
||||
margin: 1.3em 0 2px 0 !important;
|
||||
}
|
||||
|
||||
.disk-card-table .cbi-progressbar::before {
|
||||
font-size: 11px !important;
|
||||
line-height: 14px !important;
|
||||
top: -1.3em !important;
|
||||
left: 0 !important;
|
||||
right: auto !important;
|
||||
width: auto !important;
|
||||
text-align: left !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
}
|
||||
|
||||
/* Form fields left-aligned in Create RAID and Create Btrfs Pool */
|
||||
.cbi-value {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.cbi-value label.cbi-value-title,
|
||||
.cbi-value .cbi-value-title {
|
||||
text-align: left !important;
|
||||
width: 140px !important;
|
||||
min-width: 140px !important;
|
||||
flex: 0 0 140px !important;
|
||||
}
|
||||
|
||||
.cbi-value .cbi-value-field {
|
||||
text-align: left !important;
|
||||
align-items: flex-start !important;
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
|
||||
.cbi-value .cbi-value-description {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.cbi-page-actions {
|
||||
display: flex;
|
||||
justify-content: flex-start !important;
|
||||
gap: 10px;
|
||||
background: var(--background-color-high) !important;
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
/* Status Badges */
|
||||
.badge-status {
|
||||
display: inline-block;
|
||||
padding: 2px 6px;
|
||||
font-size: 11px;
|
||||
border-radius: 3px;
|
||||
font-weight: bold;
|
||||
margin-right: 6px;
|
||||
vertical-align: middle;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
.badge-mounted {
|
||||
background: rgba(46, 125, 50, 0.12);
|
||||
color: var(--success-color-high);
|
||||
border: 1px solid rgba(46, 125, 50, 0.3);
|
||||
}
|
||||
|
||||
.badge-unmounted {
|
||||
background: var(--background-color-medium);
|
||||
color: var(--text-color-medium);
|
||||
border: 1px solid var(--border-color-high);
|
||||
}
|
||||
|
||||
.mount-options-text {
|
||||
font-family: monospace;
|
||||
font-size: 11px;
|
||||
color: var(--text-color-medium);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Disk card section (per-physical-disk block on the Partition tab). It is a
|
||||
fieldset so the <legend> title anchors at the top-left; the UA fieldset
|
||||
border/padding is reset so it reads as a clean section, not a form frame. */
|
||||
.disk-card-section {
|
||||
margin: 0 0 16px 0;
|
||||
padding: 14px 16px;
|
||||
border: 1px solid var(--border-color-low);
|
||||
border-radius: 4px;
|
||||
background: var(--background-color-high);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.disk-card-section > legend {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text-color-highest);
|
||||
}
|
||||
|
||||
.disk-card-bar-wrap {
|
||||
margin-bottom: 12px;
|
||||
padding: 8px 12px;
|
||||
background: var(--background-color-medium);
|
||||
border: 1px solid var(--border-color-low);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* Card-scoped action toolbar (bottom of a per-disk card) */
|
||||
.disk-card-actions-bar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
padding: 8px 14px;
|
||||
background: var(--background-color-medium);
|
||||
border-top: 1px solid var(--border-color-low);
|
||||
}
|
||||
|
||||
.disk-actions-flex {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.disk-actions-left,
|
||||
.disk-actions-right {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
RAID & Btrfs Enhanced Components
|
||||
========================================================================== */
|
||||
.badge-tech {
|
||||
font-family: monospace;
|
||||
font-size: 11px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
background: var(--background-color-medium);
|
||||
color: var(--text-color-high);
|
||||
border: 1px solid var(--border-color-high);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.badge-member {
|
||||
font-family: monospace;
|
||||
font-size: 11px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
background: rgba(33, 150, 243, 0.08);
|
||||
color: var(--primary-color-high);
|
||||
border: 1px solid rgba(33, 150, 243, 0.3);
|
||||
display: inline-block;
|
||||
margin: 2px 4px 2px 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.btrfs-pool-card,
|
||||
.raid-pool-card {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.pool-meta-bar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
padding: 8px 12px;
|
||||
margin-bottom: 12px;
|
||||
background: var(--background-color-medium);
|
||||
border: 1px solid var(--border-color-low);
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.pool-meta-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.checkbox-chip-group {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.checkbox-chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 5px 10px;
|
||||
background: transparent;
|
||||
border: 1px solid var(--border-color-high);
|
||||
border-radius: 3px;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
user-select: none;
|
||||
transition: background 0.15s ease, border-color 0.15s ease;
|
||||
}
|
||||
|
||||
.checkbox-chip:hover {
|
||||
background: var(--background-color-low);
|
||||
}
|
||||
|
||||
.checkbox-chip input[type="checkbox"] {
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Empty-state placeholder for the member selector (no free partitions). */
|
||||
.chip-empty-box {
|
||||
border: 1px dashed var(--border-color-medium);
|
||||
border-radius: 4px;
|
||||
padding: 10px 14px;
|
||||
background: var(--background-color-medium);
|
||||
color: var(--text-color-medium);
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,912 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-diskbox 1.26.9
|
||||
"
|
||||
"Report-Msgid-Bugs-To:
|
||||
"
|
||||
"POT-Creation-Date: 2026-09-21 16:38+0800
|
||||
"
|
||||
"PO-Revision-Date: 2026-09-21 16:38+0800
|
||||
"
|
||||
"Last-Translator: permails <permails@github.com>
|
||||
"
|
||||
"Language-Team:
|
||||
"
|
||||
"Language:
|
||||
"
|
||||
"MIME-Version: 1.0
|
||||
"
|
||||
"Content-Type: text/plain; charset=UTF-8
|
||||
"
|
||||
"Content-Transfer-Encoding: 8bit
|
||||
"
|
||||
"Plural-Forms: nplurals=1; plural=0;
|
||||
"
|
||||
|
||||
msgid "(Distributed parity redundancy - needs at least 3 partitions)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(Double parity fault tolerance - needs at least 4 partitions)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(Mirror + Stripe hybrid - performance with high fault tolerance)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(Mirror - recommended dual-disk data fault tolerance, doubled read speed)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(Stripe - high throughput, no redundancy, full capacity)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(double metadata copies, recommended for important data)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(multi-device mirror redundancy)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(multi-device stripe for fast I/O)"
|
||||
msgstr ""
|
||||
|
||||
msgid "(single-device, maximizes usable capacity)"
|
||||
msgstr ""
|
||||
|
||||
msgid "-- No mountable partitions --"
|
||||
msgstr ""
|
||||
|
||||
msgid "-- Please choose --"
|
||||
msgstr ""
|
||||
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgid "Active RAID Arrays"
|
||||
msgstr ""
|
||||
|
||||
msgid "All currently unmounted free storage partitions are listed automatically."
|
||||
msgstr ""
|
||||
|
||||
msgid "Apply Table"
|
||||
msgstr ""
|
||||
|
||||
msgid "Applying partition table..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to delete partition %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to delete subvolume %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to eject/remove this device?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to stop and remove RAID array %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to unmount %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Attribute"
|
||||
msgstr ""
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto Mount"
|
||||
msgstr ""
|
||||
|
||||
msgid "Available Btrfs Filesystems"
|
||||
msgstr ""
|
||||
|
||||
msgid "Available Storage Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Back to Overview"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boot / Firmware (protected)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Label"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Management"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Member"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Pools"
|
||||
msgstr ""
|
||||
|
||||
msgid "Btrfs Raid Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Change Partition Table"
|
||||
msgstr ""
|
||||
|
||||
msgid "Change mount point / options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Click to view SMART & Health details"
|
||||
msgstr ""
|
||||
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create Btrfs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create Btrfs Pool"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create RAID"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create Snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a fresh GPT/MBR partition table"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a new partition from the largest free region"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a partition in this free region"
|
||||
msgstr ""
|
||||
|
||||
msgid "Create as read-only snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Btrfs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Btrfs filesystem..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Btrfs snapshot..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Btrfs will ERASE the selected members. Continue?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating RAID"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating RAID device..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating Subvolume"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating a RAID array will ERASE the selected members. Continue?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating new partition..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Creating subvolume..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Creation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Data"
|
||||
msgstr ""
|
||||
|
||||
msgid "Data (in use)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Data (unmounted)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Data Profile"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete Subvolume"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deleting Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deleting Subvolume"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deleting subvolume..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Dest (opt)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Destination Path (optional)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Destination path where you want to store the snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "Detach this partition from its mount point. Data is kept and it can be remounted; required before format or delete."
|
||||
msgstr ""
|
||||
|
||||
msgid "Detach this partition from its mount point; data is kept"
|
||||
msgstr ""
|
||||
|
||||
msgid "Detail"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device /dev/%s not found or has no media."
|
||||
msgstr ""
|
||||
|
||||
msgid "Device Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device is in use! Please unmount all partitions first!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disk Health"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disk Manager"
|
||||
msgstr ""
|
||||
|
||||
msgid "DiskBox"
|
||||
msgstr ""
|
||||
|
||||
msgid "DiskBox Disk Manager"
|
||||
msgstr ""
|
||||
|
||||
msgid "DiskManager"
|
||||
msgstr ""
|
||||
|
||||
msgid "DiskManger"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disks"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit Mount"
|
||||
msgstr ""
|
||||
|
||||
msgid "Eject"
|
||||
msgstr ""
|
||||
|
||||
msgid "Eject Device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ejecting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ejecting device..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Empty (no filesystem)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "End Sector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Extended Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to create Btrfs."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to create RAID."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to create partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to create snapshot."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to create subvolume."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to delete subvolume."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to eject device."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to load Btrfs pools."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to load Btrfs subvolumes."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to load disk info."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to modify partition table."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to mount."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to remove partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to set default subvolume."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to stop array."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to unmount."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to update label."
|
||||
msgstr ""
|
||||
|
||||
msgid "File System"
|
||||
msgstr ""
|
||||
|
||||
msgid "Filesystem detected - mount it to use the existing data; no formatting needed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Flag"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force Format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Format and create a modern filesystem with snapshots, transparent compression and online growth"
|
||||
msgstr ""
|
||||
|
||||
msgid "Format failed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Format partition: /dev/%s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Formatting erases all data on the partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Formatting partition will ERASE all data stored on it."
|
||||
msgstr ""
|
||||
|
||||
msgid "Formatting..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Free Space"
|
||||
msgstr ""
|
||||
|
||||
msgid "Go to DiskBox to Create Btrfs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Health"
|
||||
msgstr ""
|
||||
|
||||
msgid "Health Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Healthy / Online"
|
||||
msgstr ""
|
||||
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Partition size!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Start or End sector!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Start sector!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Kernel-managed (FIT)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgid "Label"
|
||||
msgstr ""
|
||||
|
||||
msgid "Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "Linux mdadm redundant array monitoring"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loaded by the bootloader and kernel from the FIT image; not mounted as a separate filesystem."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading Btrfs info..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading device info..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Logical"
|
||||
msgstr ""
|
||||
|
||||
msgid "Manage Btrfs filesystem, subvolumes and snapshots."
|
||||
msgstr ""
|
||||
|
||||
msgid "Manage Partitions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Manage disks over LuCI."
|
||||
msgstr ""
|
||||
|
||||
msgid "Manage disks, partitions, RAID and Btrfs over LuCI."
|
||||
msgstr ""
|
||||
|
||||
msgid "Maximum available: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
msgid "Metadata"
|
||||
msgstr ""
|
||||
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
msgid "Modifying Partition Table"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount Options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount Points"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount a device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount this partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mounted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mounted - unmount to delete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mounted - unmount to format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mounting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mounting device..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
msgid "New Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "New Snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "New Subvolume"
|
||||
msgstr ""
|
||||
|
||||
msgid "New partition on /dev/%s. Start sector auto-detected and aligned to 1 MiB."
|
||||
msgstr ""
|
||||
|
||||
msgid "No Btrfs filesystems found on this system."
|
||||
msgstr ""
|
||||
|
||||
msgid "No Btrfs filesystems."
|
||||
msgstr ""
|
||||
|
||||
msgid "No RAID arrays."
|
||||
msgstr ""
|
||||
|
||||
msgid "No SMART attributes to display."
|
||||
msgstr ""
|
||||
|
||||
msgid "No disks detected."
|
||||
msgstr ""
|
||||
|
||||
msgid "No free partitions available to select."
|
||||
msgstr ""
|
||||
|
||||
msgid "No partitions (Raw Disk / Unpartitioned)"
|
||||
msgstr ""
|
||||
|
||||
msgid "No storage partitions found."
|
||||
msgstr ""
|
||||
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not mounted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only use this if the partition cannot be mounted and its data is not needed. Formatting erases all data on the partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition Management"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition Size"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition Table"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition disk over LuCI."
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition formatted successfully!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partition is in use! Please unmount it first!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partitions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partitions Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Partitions: %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Passed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Physical Disks"
|
||||
msgstr ""
|
||||
|
||||
msgid "Please select Btrfs member disks/partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Please select RAID member disks/partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Please select a device and input mount point!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Please select at least one Btrfs member!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pool Label"
|
||||
msgstr ""
|
||||
|
||||
msgid "Power Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Primary"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Arrays"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Details"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Devices"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Members"
|
||||
msgstr ""
|
||||
|
||||
msgid "RAID Name"
|
||||
msgstr ""
|
||||
|
||||
msgid "Raw"
|
||||
msgstr ""
|
||||
|
||||
msgid "Read-Only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Read-only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Read/Write"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove this partition from the partition table. Its space becomes unallocated and existing data is lost once overwritten."
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove this partition from the table; its space becomes unallocated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Removing partition..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Rescan Disks"
|
||||
msgstr ""
|
||||
|
||||
msgid "Rescanning SCSI and RAID devices..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Rotation Rate"
|
||||
msgstr ""
|
||||
|
||||
msgid "S.M.A.R.T Attributes"
|
||||
msgstr ""
|
||||
|
||||
msgid "SATA Version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sector Size"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select a Btrfs filesystem to manage."
|
||||
msgstr ""
|
||||
|
||||
msgid "Select at least two RAID members!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select two or more free partitions to build a high-reliability or high-performance array"
|
||||
msgstr ""
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr ""
|
||||
|
||||
msgid "Serial: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set Default"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setting Default"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setting default subvolume..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgid "Size exceeds the available free space."
|
||||
msgstr ""
|
||||
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
msgid "Snapshot"
|
||||
msgstr ""
|
||||
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgid "Source Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Source path for creating snapshot (must start with '/')"
|
||||
msgstr ""
|
||||
|
||||
msgid "Source path must start with '/'"
|
||||
msgstr ""
|
||||
|
||||
msgid "Standard software RAID block device path, defaults to /dev/md1, /dev/md2..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Standby"
|
||||
msgstr ""
|
||||
|
||||
msgid "Start Sector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Stop Array"
|
||||
msgstr ""
|
||||
|
||||
msgid "Stopping Array"
|
||||
msgstr ""
|
||||
|
||||
msgid "Stopping RAID array..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Storage pool volume label, used as the mount / management identifier."
|
||||
msgstr ""
|
||||
|
||||
msgid "Subvolume"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subvolume path must start with '/'"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subvolumes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subvolumes & Snapshots"
|
||||
msgstr ""
|
||||
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
msgid "System Data (in use)"
|
||||
msgstr ""
|
||||
|
||||
msgid "System Firmware Partition"
|
||||
msgstr ""
|
||||
|
||||
msgid "System Reserved / Unavailable"
|
||||
msgstr ""
|
||||
|
||||
msgid "System RootFS / Overlay"
|
||||
msgstr ""
|
||||
|
||||
msgid "System partition - cannot unmount"
|
||||
msgstr ""
|
||||
|
||||
msgid "System partition, protected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Temp"
|
||||
msgstr ""
|
||||
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
msgid "This partition contains data."
|
||||
msgstr ""
|
||||
|
||||
msgid "Thresh"
|
||||
msgstr ""
|
||||
|
||||
msgid "Top Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "UUID"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unallocated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unallocated Space"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unformatted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmount"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmount this partition, then it can be formatted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmounted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmounting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmounting %s..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Updating Btrfs label..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Updating Label"
|
||||
msgstr ""
|
||||
|
||||
msgid "Urgent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Usage"
|
||||
msgstr ""
|
||||
|
||||
msgid "Used"
|
||||
msgstr ""
|
||||
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Warning !!\nTHIS WILL OVERWRITE EXISTING PARTITIONS!!\nModify the partition table to %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Worst"
|
||||
msgstr ""
|
||||
|
||||
msgid "next-gen CoW write-time-copy storage pool"
|
||||
msgstr ""
|
||||
|
||||
msgid "sectors"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,900 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-diskbox 1.26.9\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-08-23 18:50+0800\n"
|
||||
"PO-Revision-Date: 2026-08-23 18:50+0800\n"
|
||||
"Last-Translator: permails <permails@github.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_Hans@li.org>\n"
|
||||
"Language: zh_Hans\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"
|
||||
|
||||
msgid "DiskBox"
|
||||
msgstr "磁盘盒子"
|
||||
|
||||
msgid "DiskManager"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "DiskManger"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "DiskBox Disk Manager"
|
||||
msgstr "DiskBox 磁盘管理"
|
||||
|
||||
msgid "Disk Manager"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "Manage disks over LuCI."
|
||||
msgstr "通过 LuCI 管理磁盘。"
|
||||
|
||||
msgid "Rescan Disks"
|
||||
msgstr "重新扫描磁盘"
|
||||
|
||||
msgid "Rescanning SCSI and RAID devices..."
|
||||
msgstr "正在重新扫描 SCSI 与 RAID 设备..."
|
||||
|
||||
msgid "Disks"
|
||||
msgstr "磁盘"
|
||||
|
||||
msgid "Path"
|
||||
msgstr "路径"
|
||||
|
||||
msgid "Model"
|
||||
msgstr "型号"
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr "序列号"
|
||||
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
msgid "Sector Size"
|
||||
msgstr "扇区大小"
|
||||
|
||||
msgid "Partition Table"
|
||||
msgstr "分区表"
|
||||
|
||||
msgid "Level"
|
||||
msgstr "级别"
|
||||
|
||||
msgid "Temp"
|
||||
msgstr "温度"
|
||||
|
||||
msgid "Members"
|
||||
msgstr "成员"
|
||||
|
||||
msgid "SATA Version"
|
||||
msgstr "SATA 版本"
|
||||
|
||||
msgid "Rotation Rate"
|
||||
msgstr "转速"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
msgid "Disk Health"
|
||||
msgstr "磁盘健康"
|
||||
|
||||
msgid "Power Status"
|
||||
msgstr "电源状态"
|
||||
|
||||
msgid "Temperature"
|
||||
msgstr "温度"
|
||||
|
||||
msgid "Health"
|
||||
msgstr "健康"
|
||||
|
||||
msgid "Health Status"
|
||||
msgstr "健康状态"
|
||||
|
||||
msgid "Normal"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Passed"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
msgid "Urgent"
|
||||
msgstr "严重"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失败"
|
||||
|
||||
msgid "Active"
|
||||
msgstr "活动"
|
||||
|
||||
msgid "Standby"
|
||||
msgstr "待机"
|
||||
|
||||
msgid "Sleep"
|
||||
msgstr "休眠"
|
||||
|
||||
msgid "Eject"
|
||||
msgstr "弹出"
|
||||
|
||||
msgid "Ejecting"
|
||||
msgstr "正在弹出"
|
||||
|
||||
msgid "Ejecting device..."
|
||||
msgstr "正在弹出设备..."
|
||||
|
||||
msgid "Failed to eject device."
|
||||
msgstr "弹出设备失败。"
|
||||
|
||||
msgid "Are you sure you want to eject/remove this device?"
|
||||
msgstr "确定要弹出/移除此设备吗?"
|
||||
|
||||
msgid "Partition is in use! Please unmount it first!"
|
||||
msgstr "分区正在使用中!请先卸载它!"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "编辑"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
msgid "RAID Devices"
|
||||
msgstr "RAID 设备"
|
||||
|
||||
msgid "RAID Level"
|
||||
msgstr "RAID 级别"
|
||||
|
||||
msgid "Btrfs"
|
||||
msgstr "Btrfs"
|
||||
|
||||
msgid "UUID"
|
||||
msgstr "UUID"
|
||||
|
||||
msgid "Label"
|
||||
msgstr "卷标"
|
||||
|
||||
msgid "Usage"
|
||||
msgstr "使用率"
|
||||
|
||||
msgid "Mount Points"
|
||||
msgstr "挂载点"
|
||||
|
||||
msgid "Device"
|
||||
msgstr "设备"
|
||||
|
||||
msgid "File System"
|
||||
msgstr "文件系统"
|
||||
|
||||
msgid "Mount Options"
|
||||
msgstr "挂载选项"
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr "挂载点"
|
||||
|
||||
msgid "Mount"
|
||||
msgstr "挂载"
|
||||
|
||||
msgid "Mounting"
|
||||
msgstr "正在挂载"
|
||||
|
||||
msgid "Mounting device..."
|
||||
msgstr "正在挂载设备..."
|
||||
|
||||
msgid "Failed to mount."
|
||||
msgstr "挂载失败。"
|
||||
|
||||
msgid "Unmount"
|
||||
msgstr "卸载"
|
||||
|
||||
msgid "Unmounting"
|
||||
msgstr "正在卸载"
|
||||
|
||||
msgid "Unmounting %s..."
|
||||
msgstr "正在卸载 %s..."
|
||||
|
||||
msgid "Failed to unmount."
|
||||
msgstr "卸载失败。"
|
||||
|
||||
msgid "Are you sure you want to unmount %s?"
|
||||
msgstr "确定要卸载 %s 吗?"
|
||||
|
||||
msgid "-- Please choose --"
|
||||
msgstr "-- 请选择 --"
|
||||
|
||||
msgid "Please select a device and input mount point!"
|
||||
msgstr "请选择设备并输入挂载点!"
|
||||
|
||||
msgid "Creation"
|
||||
msgstr "创建"
|
||||
|
||||
msgid "RAID"
|
||||
msgstr "RAID"
|
||||
|
||||
msgid "Create RAID"
|
||||
msgstr "创建 RAID"
|
||||
|
||||
msgid "RAID Name"
|
||||
msgstr "RAID 名称"
|
||||
|
||||
msgid "RAID Members"
|
||||
msgstr "磁盘阵列成员"
|
||||
|
||||
msgid "Creating RAID"
|
||||
msgstr "正在创建 RAID"
|
||||
|
||||
msgid "Creating RAID device..."
|
||||
msgstr "正在创建 RAID 设备..."
|
||||
|
||||
msgid "Failed to create RAID."
|
||||
msgstr "创建 RAID 失败。"
|
||||
|
||||
msgid "Please select RAID member disks/partitions!"
|
||||
msgstr "请选择 RAID 成员磁盘/分区!"
|
||||
|
||||
msgid "Create Btrfs"
|
||||
msgstr "创建 Btrfs"
|
||||
|
||||
msgid "Btrfs Label"
|
||||
msgstr "Btrfs 卷标"
|
||||
|
||||
msgid "Btrfs Raid Level"
|
||||
msgstr "Btrfs RAID 级别"
|
||||
|
||||
msgid "Btrfs Member"
|
||||
msgstr "Btrfs 成员"
|
||||
|
||||
msgid "Creating Btrfs"
|
||||
msgstr "正在创建 Btrfs"
|
||||
|
||||
msgid "Creating Btrfs filesystem..."
|
||||
msgstr "正在创建 Btrfs 文件系统..."
|
||||
|
||||
msgid "Failed to create Btrfs."
|
||||
msgstr "创建 Btrfs 失败。"
|
||||
|
||||
msgid "Please select Btrfs member disks/partitions!"
|
||||
msgstr "请选择 Btrfs 成员磁盘/分区!"
|
||||
|
||||
msgid "Partition Management"
|
||||
msgstr "分区管理"
|
||||
|
||||
msgid "Partition disk over LuCI."
|
||||
msgstr "通过 LuCI 分区磁盘。"
|
||||
|
||||
msgid "Partitions Info"
|
||||
msgstr "分区信息"
|
||||
|
||||
msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector"
|
||||
msgstr "默认 2048 扇区对齐,【终止扇区】支持输入 +容量{b,k,m,g,t} 格式,例:+500m +10g +1t"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
msgid "Start Sector"
|
||||
msgstr "起始扇区"
|
||||
|
||||
msgid "End Sector"
|
||||
msgstr "终止扇区"
|
||||
|
||||
msgid "Used"
|
||||
msgstr "已用"
|
||||
|
||||
msgid "Free Space"
|
||||
msgstr "空闲空间"
|
||||
|
||||
msgid "Extended Partition"
|
||||
msgstr "扩展分区"
|
||||
|
||||
msgid "Primary"
|
||||
msgstr "主分区"
|
||||
|
||||
msgid "Logical"
|
||||
msgstr "逻辑分区"
|
||||
|
||||
msgid "Unformatted"
|
||||
msgstr "未格式化"
|
||||
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
msgid "Creating Partition"
|
||||
msgstr "正在创建分区"
|
||||
|
||||
msgid "Creating new partition..."
|
||||
msgstr "正在创建新分区..."
|
||||
|
||||
msgid "Failed to create partition."
|
||||
msgstr "创建分区失败。"
|
||||
|
||||
msgid "Invalid Start or End sector!"
|
||||
msgstr "无效的起始或终止扇区!"
|
||||
|
||||
msgid "Deleting Partition"
|
||||
msgstr "正在删除分区"
|
||||
|
||||
msgid "Removing partition..."
|
||||
msgstr "正在删除分区..."
|
||||
|
||||
msgid "Failed to remove partition."
|
||||
msgstr "删除分区失败。"
|
||||
|
||||
msgid "Are you sure you want to delete partition %s?"
|
||||
msgstr "确定要删除分区 %s 吗?"
|
||||
|
||||
msgid "Format"
|
||||
msgstr "格式化"
|
||||
|
||||
msgid "Format partition: /dev/%s"
|
||||
msgstr "格式化分区:/dev/%s"
|
||||
|
||||
msgid "Formatting..."
|
||||
msgstr "正在格式化..."
|
||||
|
||||
msgid "Formatting partition will ERASE all data stored on it."
|
||||
msgstr "格式化分区将清除其上的所有数据!"
|
||||
|
||||
msgid "Partition formatted successfully!"
|
||||
msgstr "分区格式化成功!"
|
||||
|
||||
msgid "Format failed."
|
||||
msgstr "格式化失败。"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "关闭"
|
||||
|
||||
msgid "Back to Overview"
|
||||
msgstr "返回至概览"
|
||||
|
||||
msgid "Device Info"
|
||||
msgstr "设备信息"
|
||||
|
||||
msgid "Device /dev/%s not found or has no media."
|
||||
msgstr "未找到设备 /dev/%s 或无介质。"
|
||||
|
||||
msgid "Warning !!\nTHIS WILL OVERWRITE EXISTING PARTITIONS!!\nModify the partition table to %s?"
|
||||
msgstr "警告!!\n这将覆盖现有分区!!\n确定要将分区表修改为 %s 吗?"
|
||||
|
||||
msgid "Modifying Partition Table"
|
||||
msgstr "正在修改分区表"
|
||||
|
||||
msgid "Applying partition table..."
|
||||
msgstr "正在应用分区表..."
|
||||
|
||||
msgid "Failed to modify partition table."
|
||||
msgstr "修改分区表失败。"
|
||||
|
||||
msgid "S.M.A.R.T Attributes"
|
||||
msgstr "S.M.A.R.T 属性"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "正在收集数据..."
|
||||
|
||||
msgid "No SMART attributes to display."
|
||||
msgstr "暂无 SMART 属性显示。"
|
||||
|
||||
msgid "Attribute"
|
||||
msgstr "属性"
|
||||
|
||||
msgid "Flag"
|
||||
msgstr "标志"
|
||||
|
||||
msgid "Value"
|
||||
msgstr "当前值"
|
||||
|
||||
msgid "Worst"
|
||||
msgstr "最差值"
|
||||
|
||||
msgid "Thresh"
|
||||
msgstr "阈值"
|
||||
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
msgid "Updated"
|
||||
msgstr "更新状态"
|
||||
|
||||
msgid "Raw"
|
||||
msgstr "原始数据"
|
||||
|
||||
msgid "Btrfs Management"
|
||||
msgstr "Btrfs 管理"
|
||||
|
||||
msgid "Manage Btrfs filesystem, subvolumes and snapshots."
|
||||
msgstr "管理 Btrfs 文件系统、子卷与快照。"
|
||||
|
||||
msgid "Select a Btrfs filesystem to manage."
|
||||
msgstr "请选择要管理的 Btrfs 文件系统。"
|
||||
|
||||
msgid "No Btrfs filesystems found on this system."
|
||||
msgstr "系统中未找到 Btrfs 文件系统。"
|
||||
|
||||
msgid "Go to DiskBox to Create Btrfs"
|
||||
msgstr "前往 DiskBox 创建 Btrfs"
|
||||
|
||||
msgid "Available Btrfs Filesystems"
|
||||
msgstr "可用的 Btrfs 文件系统"
|
||||
|
||||
msgid "Btrfs Info"
|
||||
msgstr "Btrfs 信息"
|
||||
|
||||
msgid "Data"
|
||||
msgstr "数据"
|
||||
|
||||
msgid "Metadata"
|
||||
msgstr "元数据"
|
||||
|
||||
msgid "Updating Label"
|
||||
msgstr "正在更新卷标"
|
||||
|
||||
msgid "Updating Btrfs label..."
|
||||
msgstr "正在更新 Btrfs 卷标..."
|
||||
|
||||
msgid "Failed to update label."
|
||||
msgstr "更新卷标失败。"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
msgid "Subvolumes"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgid "Top Level"
|
||||
msgstr "顶层"
|
||||
|
||||
msgid "Set Default"
|
||||
msgstr "设为默认"
|
||||
|
||||
msgid "Default"
|
||||
msgstr "默认"
|
||||
|
||||
msgid "Setting Default"
|
||||
msgstr "正在设为默认"
|
||||
|
||||
msgid "Setting default subvolume..."
|
||||
msgstr "正在设置默认子卷..."
|
||||
|
||||
msgid "Failed to set default subvolume."
|
||||
msgstr "设置默认子卷失败。"
|
||||
|
||||
msgid "Deleting Subvolume"
|
||||
msgstr "正在删除子卷"
|
||||
|
||||
msgid "Deleting subvolume..."
|
||||
msgstr "正在删除子卷..."
|
||||
|
||||
msgid "Failed to delete subvolume."
|
||||
msgstr "删除子卷失败。"
|
||||
|
||||
msgid "Are you sure you want to delete subvolume %s?"
|
||||
msgstr "确定要删除子卷 %s 吗?"
|
||||
|
||||
msgid "Create"
|
||||
msgstr "创建"
|
||||
|
||||
msgid "New Subvolume"
|
||||
msgstr "新建子卷"
|
||||
|
||||
msgid "Creating Subvolume"
|
||||
msgstr "正在创建子卷"
|
||||
|
||||
msgid "Creating subvolume..."
|
||||
msgstr "正在创建子卷..."
|
||||
|
||||
msgid "Failed to create subvolume."
|
||||
msgstr "创建子卷失败。"
|
||||
|
||||
msgid "Subvolume path must start with '/'"
|
||||
msgstr "子卷路径必须以 '/' 开头"
|
||||
|
||||
msgid "New Snapshot"
|
||||
msgstr "新建快照"
|
||||
|
||||
msgid "Source Path"
|
||||
msgstr "来源路径"
|
||||
|
||||
msgid "Source path for creating snapshot (must start with '/')"
|
||||
msgstr "创建快照的来源路径(必须以 '/' 开头)"
|
||||
|
||||
msgid "Source path must start with '/'"
|
||||
msgstr "来源路径必须以 '/' 开头"
|
||||
|
||||
msgid "Read-Only"
|
||||
msgstr "只读"
|
||||
|
||||
msgid "Create as read-only snapshot"
|
||||
msgstr "创建为只读快照"
|
||||
|
||||
msgid "Destination Path (optional)"
|
||||
msgstr "目标路径(可选)"
|
||||
|
||||
msgid "Destination path where you want to store the snapshot"
|
||||
msgstr "存放快照的目标路径"
|
||||
|
||||
msgid "Create Snapshot"
|
||||
msgstr "创建快照"
|
||||
|
||||
msgid "Creating Snapshot"
|
||||
msgstr "正在创建快照"
|
||||
|
||||
msgid "Creating Btrfs snapshot..."
|
||||
msgstr "正在创建 Btrfs 快照..."
|
||||
|
||||
msgid "Failed to create snapshot."
|
||||
msgstr "创建快照失败。"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "加载中..."
|
||||
|
||||
msgid "Loading device info..."
|
||||
msgstr "正在加载设备信息..."
|
||||
|
||||
msgid "Loading Btrfs info..."
|
||||
msgstr "正在加载 Btrfs 信息..."
|
||||
msgid "Partitions"
|
||||
msgstr "分区"
|
||||
|
||||
msgid "Partitions: %d"
|
||||
msgstr "分区数: %d"
|
||||
|
||||
msgid "Unallocated Space"
|
||||
msgstr "未分配空间"
|
||||
|
||||
msgid "Unallocated"
|
||||
msgstr "未分配"
|
||||
|
||||
msgid "No storage partitions found."
|
||||
msgstr "未发现存储分区。"
|
||||
|
||||
msgid "No disks detected."
|
||||
msgstr "未检测到磁盘设备。"
|
||||
|
||||
msgid "Available Storage Partition"
|
||||
msgstr "可用存储分区"
|
||||
|
||||
msgid "Boot / Firmware (protected)"
|
||||
msgstr "启动 / 固件(受保护)"
|
||||
|
||||
msgid "Click to view SMART & Health details"
|
||||
msgstr "点击查看 SMART 与健康详情"
|
||||
|
||||
msgid "Force Format"
|
||||
msgstr "强制格式化"
|
||||
|
||||
msgid "No partitions (Raw Disk / Unpartitioned)"
|
||||
msgstr "无分区(裸盘 / 未分区)"
|
||||
|
||||
msgid "System"
|
||||
msgstr "系统"
|
||||
|
||||
msgid "System Data (in use)"
|
||||
msgstr "系统数据(使用中)"
|
||||
|
||||
msgid "System Firmware Partition"
|
||||
msgstr "系统固件分区"
|
||||
|
||||
msgid "System partition - cannot unmount"
|
||||
msgstr "系统分区 - 无法卸载"
|
||||
|
||||
msgid "System Reserved / Unavailable"
|
||||
msgstr "系统保留 / 不可用"
|
||||
|
||||
msgid "System RootFS / Overlay"
|
||||
msgstr "系统 RootFS / 叠加层"
|
||||
|
||||
msgid "This partition contains data."
|
||||
msgstr "此分区包含数据。"
|
||||
|
||||
msgid "Data (in use)"
|
||||
msgstr "数据(使用中)"
|
||||
|
||||
msgid "Data (unmounted)"
|
||||
msgstr "数据(未挂载)"
|
||||
|
||||
msgid "Empty (no filesystem)"
|
||||
msgstr "空白(无文件系统)"
|
||||
|
||||
msgid "System partition, protected"
|
||||
msgstr "系统分区,受保护"
|
||||
|
||||
msgid "Not mounted"
|
||||
msgstr "未挂载"
|
||||
|
||||
msgid "Mounted - unmount to delete"
|
||||
msgstr "已挂载 - 卸载后才能删除"
|
||||
|
||||
msgid "Unmount this partition, then it can be formatted"
|
||||
msgstr "卸载此分区后即可格式化"
|
||||
|
||||
msgid "Mounted - unmount to format"
|
||||
msgstr "已挂载 - 卸载后才能格式化"
|
||||
|
||||
msgid "Actions"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Detach this partition from its mount point. Data is kept and it can be remounted; required before format or delete."
|
||||
msgstr "将分区从挂载点分离,数据保留且可再次挂载;格式化或删除前必须先执行。"
|
||||
|
||||
msgid "Remove this partition from the partition table. Its space becomes unallocated and existing data is lost once overwritten."
|
||||
msgstr "从分区表中删除该分区,空间变为未分配,原有数据被覆写后不可恢复。"
|
||||
|
||||
msgid "Filesystem detected - mount it to use the existing data; no formatting needed."
|
||||
msgstr "检测到文件系统 - 直接挂载即可使用现有数据,无需格式化。"
|
||||
|
||||
msgid "Only use this if the partition cannot be mounted and its data is not needed. Formatting erases all data on the partition."
|
||||
msgstr "仅当分区无法挂载、且数据确定不再需要时使用;格式化将擦除该分区的全部数据。"
|
||||
|
||||
msgid "Change Partition Table"
|
||||
msgstr "更改分区表"
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr "确认"
|
||||
|
||||
msgid "Delete Partition"
|
||||
msgstr "删除分区"
|
||||
|
||||
msgid "Delete Subvolume"
|
||||
msgstr "删除子卷"
|
||||
|
||||
msgid "Eject Device"
|
||||
msgstr "弹出设备"
|
||||
|
||||
msgid "Mount a device"
|
||||
msgstr "挂载设备"
|
||||
msgid "-- No mountable partitions --"
|
||||
msgstr "没有可挂载的分区"
|
||||
|
||||
msgid "Apply Table"
|
||||
msgstr "应用分区表"
|
||||
|
||||
msgid "Auto Mount"
|
||||
msgstr "自动挂载"
|
||||
|
||||
msgid "Btrfs Pools"
|
||||
msgstr "Btrfs 存储池"
|
||||
|
||||
msgid "Change mount point / options"
|
||||
msgstr "更改挂载点 / 选项"
|
||||
|
||||
msgid "Create Partition"
|
||||
msgstr "新建分区"
|
||||
|
||||
msgid "Create a fresh GPT/MBR partition table"
|
||||
msgstr "创建全新的 GPT/MBR 分区表"
|
||||
|
||||
msgid "Create a new partition from the largest free region"
|
||||
msgstr "从最大空闲区域创建新分区"
|
||||
|
||||
msgid "Create a partition in this free region"
|
||||
msgstr "在此空闲区域创建分区"
|
||||
|
||||
msgid "Creating Btrfs will ERASE the selected members. Continue?"
|
||||
msgstr "创建 Btrfs 将擦除所选成员磁盘。继续?"
|
||||
|
||||
msgid "Creating a RAID array will ERASE the selected members. Continue?"
|
||||
msgstr "创建 RAID 阵列将擦除所选成员磁盘。继续?"
|
||||
|
||||
msgid "Data Profile"
|
||||
msgstr "数据配置"
|
||||
|
||||
msgid "Dest (opt)"
|
||||
msgstr "目标(可选)"
|
||||
|
||||
msgid "Detach this partition from its mount point; data is kept"
|
||||
msgstr "将此分区从挂载点卸载;数据保留"
|
||||
|
||||
msgid "Device is in use! Please unmount all partitions first!"
|
||||
msgstr "设备正在使用!请先卸载所有分区!"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "已禁用"
|
||||
|
||||
msgid "Edit Mount"
|
||||
msgstr "编辑挂载"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
msgid "Failed to load Btrfs subvolumes."
|
||||
msgstr "加载 Btrfs 子卷失败。"
|
||||
|
||||
msgid "Failed to load disk info."
|
||||
msgstr "加载磁盘信息失败。"
|
||||
|
||||
msgid "Formatting erases all data on the partition"
|
||||
msgstr "格式化将擦除分区上的所有数据"
|
||||
|
||||
msgid "Invalid Partition size!"
|
||||
msgstr "无效的分区大小!"
|
||||
|
||||
msgid "Invalid Start sector!"
|
||||
msgstr "无效的起始扇区!"
|
||||
|
||||
msgid "Manage Partitions"
|
||||
msgstr "管理分区"
|
||||
|
||||
msgid "Manage disks, partitions, RAID and Btrfs over LuCI."
|
||||
msgstr "通过 LuCI 管理磁盘、分区、RAID 和 Btrfs。"
|
||||
|
||||
msgid "Maximum available: %s"
|
||||
msgstr "最大可用: %s"
|
||||
|
||||
msgid "Mount this partition"
|
||||
msgstr "挂载此分区"
|
||||
|
||||
msgid "Mounted"
|
||||
msgstr "已挂载"
|
||||
|
||||
msgid "New Partition"
|
||||
msgstr "新建分区"
|
||||
|
||||
msgid "New partition on /dev/%s. Start sector auto-detected and aligned to 1 MiB."
|
||||
msgstr "在 /dev/%s 上新建分区。起始扇区自动检测并对齐到 1 MiB。"
|
||||
|
||||
msgid "No Btrfs filesystems."
|
||||
msgstr "没有 Btrfs 文件系统。"
|
||||
|
||||
msgid "No RAID arrays."
|
||||
msgstr "没有 RAID 阵列。"
|
||||
|
||||
msgid "Partition Size"
|
||||
msgstr "分区大小"
|
||||
|
||||
msgid "Physical Disks"
|
||||
msgstr "物理磁盘"
|
||||
|
||||
msgid "RAID Arrays"
|
||||
msgstr "RAID 阵列"
|
||||
|
||||
msgid "Read-only"
|
||||
msgstr "只读"
|
||||
|
||||
msgid "Remove this partition from the table; its space becomes unallocated"
|
||||
msgstr "从分区表中删除此分区;其空间变为未分配"
|
||||
|
||||
msgid "Serial: %s"
|
||||
msgstr "序列号: %s"
|
||||
|
||||
msgid "Size exceeds the available free space."
|
||||
msgstr "大小超过可用空闲空间。"
|
||||
|
||||
msgid "Snapshot"
|
||||
msgstr "快照"
|
||||
|
||||
msgid "Source"
|
||||
msgstr "源"
|
||||
|
||||
msgid "Unmounted"
|
||||
msgstr "未挂载"
|
||||
|
||||
msgid "sectors"
|
||||
msgstr "扇区"
|
||||
|
||||
msgid "(Distributed parity redundancy - needs at least 3 partitions)"
|
||||
msgstr "(分布式奇偶校验冗余 - 至少需 3 个分区)"
|
||||
|
||||
msgid "(Double parity fault tolerance - needs at least 4 partitions)"
|
||||
msgstr "(双重奇偶校验容错 - 至少需 4 个分区)"
|
||||
|
||||
msgid "(Mirror + Stripe hybrid - performance with high fault tolerance)"
|
||||
msgstr "(镜像+条带混合 - 兼顾性能与高容错)"
|
||||
|
||||
msgid "(Mirror - recommended dual-disk data fault tolerance, doubled read speed)"
|
||||
msgstr "(镜像 - 推荐双盘数据容错冗余,读取速度加倍)"
|
||||
|
||||
msgid "(Stripe - high throughput, no redundancy, full capacity)"
|
||||
msgstr "(条带化 - 高性能吞吐无冗余,全盘容量叠加)"
|
||||
|
||||
msgid "(double metadata copies, recommended for important data)"
|
||||
msgstr "(双份元数据保护,推荐用于重要数据)"
|
||||
|
||||
msgid "(multi-device mirror redundancy)"
|
||||
msgstr "(多盘镜像冗余保护)"
|
||||
|
||||
msgid "(multi-device stripe for fast I/O)"
|
||||
msgstr "(多盘条带化高速读写)"
|
||||
|
||||
msgid "(single-device, maximizes usable capacity)"
|
||||
msgstr "(单设备分配,最大化可用容量)"
|
||||
|
||||
msgid "Active RAID Arrays"
|
||||
msgstr "活动 RAID 阵列"
|
||||
|
||||
msgid "All currently unmounted free storage partitions are listed automatically."
|
||||
msgstr "已自动列出系统当前所有未挂载的空闲存储分区。"
|
||||
|
||||
msgid "Are you sure you want to stop and remove RAID array %s?"
|
||||
msgstr "确定要停止并移除 RAID 阵列 %s 吗?"
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr "属性"
|
||||
|
||||
msgid "Create Btrfs Pool"
|
||||
msgstr "创建 Btrfs 存储池"
|
||||
|
||||
msgid "Detail"
|
||||
msgstr "详情"
|
||||
|
||||
msgid "Failed to load Btrfs pools."
|
||||
msgstr "加载 Btrfs 存储池失败。"
|
||||
|
||||
msgid "Failed to stop array."
|
||||
msgstr "停止阵列失败。"
|
||||
|
||||
msgid "Format and create a modern filesystem with snapshots, transparent compression and online growth"
|
||||
msgstr "格式化并创建支持快照、透明压缩、在线扩容的现代文件系统"
|
||||
|
||||
msgid "Healthy / Online"
|
||||
msgstr "健康在线"
|
||||
|
||||
msgid "Linux mdadm redundant array monitoring"
|
||||
msgstr "Linux mdadm 冗余阵列监控"
|
||||
|
||||
msgid "Mount Path"
|
||||
msgstr "挂载路径"
|
||||
|
||||
msgid "Please select at least one Btrfs member!"
|
||||
msgstr "请至少选择一个 Btrfs 成员!"
|
||||
|
||||
msgid "Pool Label"
|
||||
msgstr "存储池卷标"
|
||||
|
||||
msgid "RAID Details"
|
||||
msgstr "RAID 详情"
|
||||
|
||||
msgid "Read/Write"
|
||||
msgstr "读写"
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
msgid "Select at least two RAID members!"
|
||||
msgstr "请至少选择两个 RAID 成员!"
|
||||
|
||||
msgid "Select two or more free partitions to build a high-reliability or high-performance array"
|
||||
msgstr "选择两个或多个空闲分区组合为高可靠或高性能阵列"
|
||||
|
||||
msgid "Standard software RAID block device path, defaults to /dev/md1, /dev/md2..."
|
||||
msgstr "标准软 RAID 块设备路径,默认依次分配 /dev/md1、/dev/md2..."
|
||||
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
msgid "Stop Array"
|
||||
msgstr "停止阵列"
|
||||
|
||||
msgid "Stopping Array"
|
||||
msgstr "正在停止阵列"
|
||||
|
||||
msgid "Stopping RAID array..."
|
||||
msgstr "正在停止 RAID 阵列..."
|
||||
|
||||
msgid "Storage pool volume label, used as the mount / management identifier."
|
||||
msgstr "存储池卷标名称,作为挂载与管理标识。"
|
||||
|
||||
msgid "Subvolume"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "Subvolumes & Snapshots"
|
||||
msgstr "子卷与快照"
|
||||
|
||||
msgid "next-gen CoW write-time-copy storage pool"
|
||||
msgstr "下一代 CoW 写时复制存储池"
|
||||
|
||||
msgid "Kernel-managed (FIT)"
|
||||
msgstr "内核管理(FIT)"
|
||||
|
||||
msgid "Loaded by the bootloader and kernel from the FIT image; not mounted as a separate filesystem."
|
||||
msgstr "由启动器与内核从 FIT 镜像加载,不作为独立文件系统挂载。"
|
||||
|
||||
msgid "No free partitions available to select."
|
||||
msgstr "当前没有可选择的空闲分区。"
|
||||
|
||||
|
||||
msgid "Key"
|
||||
msgstr "键"
|
||||
@@ -0,0 +1,900 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-diskbox 1.26.9\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-08-23 18:50+0800\n"
|
||||
"PO-Revision-Date: 2026-08-23 18:50+0800\n"
|
||||
"Last-Translator: permails <permails@github.com>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_Hant@li.org>\n"
|
||||
"Language: zh_Hant\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"
|
||||
|
||||
msgid "DiskBox"
|
||||
msgstr "磁碟盒子"
|
||||
|
||||
msgid "DiskManager"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "DiskManger"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "DiskBox Disk Manager"
|
||||
msgstr "DiskBox 磁碟管理"
|
||||
|
||||
msgid "Disk Manager"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "Manage disks over LuCI."
|
||||
msgstr "透過 LuCI 管理磁碟。"
|
||||
|
||||
msgid "Rescan Disks"
|
||||
msgstr "重新掃描磁碟"
|
||||
|
||||
msgid "Rescanning SCSI and RAID devices..."
|
||||
msgstr "正在重新掃描 SCSI 與 RAID 裝置..."
|
||||
|
||||
msgid "Disks"
|
||||
msgstr "磁碟"
|
||||
|
||||
msgid "Path"
|
||||
msgstr "路徑"
|
||||
|
||||
msgid "Model"
|
||||
msgstr "型號"
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr "序號"
|
||||
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
msgid "Sector Size"
|
||||
msgstr "磁區大小"
|
||||
|
||||
msgid "Partition Table"
|
||||
msgstr "分割表"
|
||||
|
||||
msgid "Level"
|
||||
msgstr "層級"
|
||||
|
||||
msgid "Temp"
|
||||
msgstr "溫度"
|
||||
|
||||
msgid "Members"
|
||||
msgstr "成員"
|
||||
|
||||
msgid "SATA Version"
|
||||
msgstr "SATA 版本"
|
||||
|
||||
msgid "Rotation Rate"
|
||||
msgstr "轉速"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "狀態"
|
||||
|
||||
msgid "Disk Health"
|
||||
msgstr "磁碟健康"
|
||||
|
||||
msgid "Power Status"
|
||||
msgstr "電源狀態"
|
||||
|
||||
msgid "Temperature"
|
||||
msgstr "溫度"
|
||||
|
||||
msgid "Health"
|
||||
msgstr "健康"
|
||||
|
||||
msgid "Health Status"
|
||||
msgstr "健康狀態"
|
||||
|
||||
msgid "Normal"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Passed"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
msgid "Urgent"
|
||||
msgstr "嚴重"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "Active"
|
||||
msgstr "活動"
|
||||
|
||||
msgid "Standby"
|
||||
msgstr "待機"
|
||||
|
||||
msgid "Sleep"
|
||||
msgstr "睡眠"
|
||||
|
||||
msgid "Eject"
|
||||
msgstr "退出"
|
||||
|
||||
msgid "Ejecting"
|
||||
msgstr "正在退出"
|
||||
|
||||
msgid "Ejecting device..."
|
||||
msgstr "正在退出裝置..."
|
||||
|
||||
msgid "Failed to eject device."
|
||||
msgstr "退出裝置失敗。"
|
||||
|
||||
msgid "Are you sure you want to eject/remove this device?"
|
||||
msgstr "確定要退出/移除此裝置嗎?"
|
||||
|
||||
msgid "Partition is in use! Please unmount it first!"
|
||||
msgstr "分割區正在使用中!請先卸載!"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "編輯"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "刪除"
|
||||
|
||||
msgid "RAID Devices"
|
||||
msgstr "RAID 裝置"
|
||||
|
||||
msgid "RAID Level"
|
||||
msgstr "RAID 層級"
|
||||
|
||||
msgid "Btrfs"
|
||||
msgstr "Btrfs"
|
||||
|
||||
msgid "UUID"
|
||||
msgstr "UUID"
|
||||
|
||||
msgid "Label"
|
||||
msgstr "標籤"
|
||||
|
||||
msgid "Usage"
|
||||
msgstr "使用率"
|
||||
|
||||
msgid "Mount Points"
|
||||
msgstr "掛載點"
|
||||
|
||||
msgid "Device"
|
||||
msgstr "裝置"
|
||||
|
||||
msgid "File System"
|
||||
msgstr "檔案系統"
|
||||
|
||||
msgid "Mount Options"
|
||||
msgstr "掛載選項"
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr "掛載點"
|
||||
|
||||
msgid "Mount"
|
||||
msgstr "掛載"
|
||||
|
||||
msgid "Mounting"
|
||||
msgstr "正在掛載"
|
||||
|
||||
msgid "Mounting device..."
|
||||
msgstr "正在掛載裝置..."
|
||||
|
||||
msgid "Failed to mount."
|
||||
msgstr "掛載失敗。"
|
||||
|
||||
msgid "Unmount"
|
||||
msgstr "卸載"
|
||||
|
||||
msgid "Unmounting"
|
||||
msgstr "正在卸載"
|
||||
|
||||
msgid "Unmounting %s..."
|
||||
msgstr "正在卸載 %s..."
|
||||
|
||||
msgid "Failed to unmount."
|
||||
msgstr "卸載失敗。"
|
||||
|
||||
msgid "Are you sure you want to unmount %s?"
|
||||
msgstr "確定要卸載 %s 嗎?"
|
||||
|
||||
msgid "-- Please choose --"
|
||||
msgstr "-- 請選擇 --"
|
||||
|
||||
msgid "Please select a device and input mount point!"
|
||||
msgstr "請選擇裝置並輸入掛載點!"
|
||||
|
||||
msgid "Creation"
|
||||
msgstr "建立"
|
||||
|
||||
msgid "RAID"
|
||||
msgstr "RAID"
|
||||
|
||||
msgid "Create RAID"
|
||||
msgstr "建立 RAID"
|
||||
|
||||
msgid "RAID Name"
|
||||
msgstr "RAID 名稱"
|
||||
|
||||
msgid "RAID Members"
|
||||
msgstr "磁碟陣列成員"
|
||||
|
||||
msgid "Creating RAID"
|
||||
msgstr "正在建立 RAID"
|
||||
|
||||
msgid "Creating RAID device..."
|
||||
msgstr "正在建立 RAID 裝置..."
|
||||
|
||||
msgid "Failed to create RAID."
|
||||
msgstr "建立 RAID 失敗。"
|
||||
|
||||
msgid "Please select RAID member disks/partitions!"
|
||||
msgstr "請選擇 RAID 成員磁碟/分割區!"
|
||||
|
||||
msgid "Create Btrfs"
|
||||
msgstr "建立 Btrfs"
|
||||
|
||||
msgid "Btrfs Label"
|
||||
msgstr "Btrfs 標籤"
|
||||
|
||||
msgid "Btrfs Raid Level"
|
||||
msgstr "Btrfs RAID 層級"
|
||||
|
||||
msgid "Btrfs Member"
|
||||
msgstr "Btrfs 成員"
|
||||
|
||||
msgid "Creating Btrfs"
|
||||
msgstr "正在建立 Btrfs"
|
||||
|
||||
msgid "Creating Btrfs filesystem..."
|
||||
msgstr "正在建立 Btrfs 檔案系統..."
|
||||
|
||||
msgid "Failed to create Btrfs."
|
||||
msgstr "建立 Btrfs 失敗。"
|
||||
|
||||
msgid "Please select Btrfs member disks/partitions!"
|
||||
msgstr "請選擇 Btrfs 成員磁碟/分割區!"
|
||||
|
||||
msgid "Partition Management"
|
||||
msgstr "分割區管理"
|
||||
|
||||
msgid "Partition disk over LuCI."
|
||||
msgstr "透過 LuCI 分割磁碟。"
|
||||
|
||||
msgid "Partitions Info"
|
||||
msgstr "分割區資訊"
|
||||
|
||||
msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector"
|
||||
msgstr "預設 2048 磁區對齊,【終止磁區】支援輸入 +容量{b,k,m,g,t} 格式,例如:+500m +10g +1t"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "名稱"
|
||||
|
||||
msgid "Start Sector"
|
||||
msgstr "起始磁區"
|
||||
|
||||
msgid "End Sector"
|
||||
msgstr "終止磁區"
|
||||
|
||||
msgid "Used"
|
||||
msgstr "已用"
|
||||
|
||||
msgid "Free Space"
|
||||
msgstr "可用空間"
|
||||
|
||||
msgid "Extended Partition"
|
||||
msgstr "擴充分割區"
|
||||
|
||||
msgid "Primary"
|
||||
msgstr "主要分割區"
|
||||
|
||||
msgid "Logical"
|
||||
msgstr "邏輯分割區"
|
||||
|
||||
msgid "Unformatted"
|
||||
msgstr "未格式化"
|
||||
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
msgid "Creating Partition"
|
||||
msgstr "正在建立分割區"
|
||||
|
||||
msgid "Creating new partition..."
|
||||
msgstr "正在建立新分割區..."
|
||||
|
||||
msgid "Failed to create partition."
|
||||
msgstr "建立分割區失敗。"
|
||||
|
||||
msgid "Invalid Start or End sector!"
|
||||
msgstr "無效的起始或終止磁區!"
|
||||
|
||||
msgid "Deleting Partition"
|
||||
msgstr "正在刪除分割區"
|
||||
|
||||
msgid "Removing partition..."
|
||||
msgstr "正在刪除分割區..."
|
||||
|
||||
msgid "Failed to remove partition."
|
||||
msgstr "刪除分割區失敗。"
|
||||
|
||||
msgid "Are you sure you want to delete partition %s?"
|
||||
msgstr "確定要刪除分割區 %s 嗎?"
|
||||
|
||||
msgid "Format"
|
||||
msgstr "格式化"
|
||||
|
||||
msgid "Format partition: /dev/%s"
|
||||
msgstr "格式化分割區:/dev/%s"
|
||||
|
||||
msgid "Formatting..."
|
||||
msgstr "正在格式化..."
|
||||
|
||||
msgid "Formatting partition will ERASE all data stored on it."
|
||||
msgstr "格式化分割區將清除其上的所有資料!"
|
||||
|
||||
msgid "Partition formatted successfully!"
|
||||
msgstr "分割區格式化成功!"
|
||||
|
||||
msgid "Format failed."
|
||||
msgstr "格式化失敗。"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "關閉"
|
||||
|
||||
msgid "Back to Overview"
|
||||
msgstr "返回至概覽"
|
||||
|
||||
msgid "Device Info"
|
||||
msgstr "裝置資訊"
|
||||
|
||||
msgid "Device /dev/%s not found or has no media."
|
||||
msgstr "未找到裝置 /dev/%s 或無媒體。"
|
||||
|
||||
msgid "Warning !!\nTHIS WILL OVERWRITE EXISTING PARTITIONS!!\nModify the partition table to %s?"
|
||||
msgstr "警告!!\n這將覆蓋現有分割區!!\n確定要將分割表修改為 %s 嗎?"
|
||||
|
||||
msgid "Modifying Partition Table"
|
||||
msgstr "正在修改分割表"
|
||||
|
||||
msgid "Applying partition table..."
|
||||
msgstr "正在套用分割表..."
|
||||
|
||||
msgid "Failed to modify partition table."
|
||||
msgstr "修改分割表失敗。"
|
||||
|
||||
msgid "S.M.A.R.T Attributes"
|
||||
msgstr "S.M.A.R.T 屬性"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "正在收集資料..."
|
||||
|
||||
msgid "No SMART attributes to display."
|
||||
msgstr "暫無 SMART 屬性顯示。"
|
||||
|
||||
msgid "Attribute"
|
||||
msgstr "屬性"
|
||||
|
||||
msgid "Flag"
|
||||
msgstr "標誌"
|
||||
|
||||
msgid "Value"
|
||||
msgstr "目前值"
|
||||
|
||||
msgid "Worst"
|
||||
msgstr "最差值"
|
||||
|
||||
msgid "Thresh"
|
||||
msgstr "閥值"
|
||||
|
||||
msgid "Type"
|
||||
msgstr "類型"
|
||||
|
||||
msgid "Updated"
|
||||
msgstr "更新狀態"
|
||||
|
||||
msgid "Raw"
|
||||
msgstr "原始資料"
|
||||
|
||||
msgid "Btrfs Management"
|
||||
msgstr "Btrfs 管理"
|
||||
|
||||
msgid "Manage Btrfs filesystem, subvolumes and snapshots."
|
||||
msgstr "管理 Btrfs 檔案系統、子卷與快照。"
|
||||
|
||||
msgid "Select a Btrfs filesystem to manage."
|
||||
msgstr "請選擇要管理的 Btrfs 檔案系統。"
|
||||
|
||||
msgid "No Btrfs filesystems found on this system."
|
||||
msgstr "系統中未找到 Btrfs 檔案系統。"
|
||||
|
||||
msgid "Go to DiskBox to Create Btrfs"
|
||||
msgstr "前往 DiskBox 建立 Btrfs"
|
||||
|
||||
msgid "Available Btrfs Filesystems"
|
||||
msgstr "可用的 Btrfs 檔案系統"
|
||||
|
||||
msgid "Btrfs Info"
|
||||
msgstr "Btrfs 資訊"
|
||||
|
||||
msgid "Data"
|
||||
msgstr "資料"
|
||||
|
||||
msgid "Metadata"
|
||||
msgstr "元資料"
|
||||
|
||||
msgid "Updating Label"
|
||||
msgstr "正在更新標籤"
|
||||
|
||||
msgid "Updating Btrfs label..."
|
||||
msgstr "正在更新 Btrfs 標籤..."
|
||||
|
||||
msgid "Failed to update label."
|
||||
msgstr "更新標籤失敗。"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
msgid "Subvolumes"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgid "Top Level"
|
||||
msgstr "頂層"
|
||||
|
||||
msgid "Set Default"
|
||||
msgstr "設為預設"
|
||||
|
||||
msgid "Default"
|
||||
msgstr "預設"
|
||||
|
||||
msgid "Setting Default"
|
||||
msgstr "正在設為預設"
|
||||
|
||||
msgid "Setting default subvolume..."
|
||||
msgstr "正在設定預設子卷..."
|
||||
|
||||
msgid "Failed to set default subvolume."
|
||||
msgstr "設定預設子卷失敗。"
|
||||
|
||||
msgid "Deleting Subvolume"
|
||||
msgstr "正在刪除子卷"
|
||||
|
||||
msgid "Deleting subvolume..."
|
||||
msgstr "正在刪除子卷..."
|
||||
|
||||
msgid "Failed to delete subvolume."
|
||||
msgstr "刪除子卷失敗。"
|
||||
|
||||
msgid "Are you sure you want to delete subvolume %s?"
|
||||
msgstr "確定要刪除子卷 %s 嗎?"
|
||||
|
||||
msgid "Create"
|
||||
msgstr "建立"
|
||||
|
||||
msgid "New Subvolume"
|
||||
msgstr "新建子卷"
|
||||
|
||||
msgid "Creating Subvolume"
|
||||
msgstr "正在建立子卷"
|
||||
|
||||
msgid "Creating subvolume..."
|
||||
msgstr "正在建立子卷..."
|
||||
|
||||
msgid "Failed to create subvolume."
|
||||
msgstr "建立子卷失敗。"
|
||||
|
||||
msgid "Subvolume path must start with '/'"
|
||||
msgstr "子卷路徑必須以 '/' 開頭"
|
||||
|
||||
msgid "New Snapshot"
|
||||
msgstr "新建快照"
|
||||
|
||||
msgid "Source Path"
|
||||
msgstr "來源路徑"
|
||||
|
||||
msgid "Source path for creating snapshot (must start with '/')"
|
||||
msgstr "建立快照的來源路徑(必須以 '/' 開頭)"
|
||||
|
||||
msgid "Source path must start with '/'"
|
||||
msgstr "來源路徑必須以 '/' 開頭"
|
||||
|
||||
msgid "Read-Only"
|
||||
msgstr "唯讀"
|
||||
|
||||
msgid "Create as read-only snapshot"
|
||||
msgstr "建立為唯讀快照"
|
||||
|
||||
msgid "Destination Path (optional)"
|
||||
msgstr "目標路徑(可選)"
|
||||
|
||||
msgid "Destination path where you want to store the snapshot"
|
||||
msgstr "存放快照的目標路徑"
|
||||
|
||||
msgid "Create Snapshot"
|
||||
msgstr "建立快照"
|
||||
|
||||
msgid "Creating Snapshot"
|
||||
msgstr "正在建立快照"
|
||||
|
||||
msgid "Creating Btrfs snapshot..."
|
||||
msgstr "正在建立 Btrfs 快照..."
|
||||
|
||||
msgid "Failed to create snapshot."
|
||||
msgstr "建立快照失敗。"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "載入中..."
|
||||
|
||||
msgid "Loading device info..."
|
||||
msgstr "正在載入裝置資訊..."
|
||||
|
||||
msgid "Loading Btrfs info..."
|
||||
msgstr "正在載入 Btrfs 資訊..."
|
||||
msgid "Available Storage Partition"
|
||||
msgstr "可用儲存分区"
|
||||
|
||||
msgid "Boot / Firmware (protected)"
|
||||
msgstr "開機 / 韌體(受保護)"
|
||||
|
||||
msgid "Click to view SMART & Health details"
|
||||
msgstr "點擊查看 SMART 與健康詳情"
|
||||
|
||||
msgid "Force Format"
|
||||
msgstr "強制格式化"
|
||||
|
||||
msgid "No partitions (Raw Disk / Unpartitioned)"
|
||||
msgstr "無分区(裸磁碟 / 未分区)"
|
||||
|
||||
msgid "System"
|
||||
msgstr "系統"
|
||||
|
||||
msgid "System Data (in use)"
|
||||
msgstr "系統資料(使用中)"
|
||||
|
||||
msgid "System Firmware Partition"
|
||||
msgstr "系統韌體分区"
|
||||
|
||||
msgid "System partition - cannot unmount"
|
||||
msgstr "系統分区 - 無法卸載"
|
||||
|
||||
msgid "System Reserved / Unavailable"
|
||||
msgstr "系統保留 / 不可用"
|
||||
|
||||
msgid "System RootFS / Overlay"
|
||||
msgstr "系統 RootFS / 疊加層"
|
||||
|
||||
msgid "This partition contains data."
|
||||
msgstr "此分区包含資料。"
|
||||
|
||||
msgid "No disks detected."
|
||||
msgstr "未偵測到磁碟設備。"
|
||||
|
||||
msgid "No storage partitions found."
|
||||
msgstr "未發現儲存分区。"
|
||||
|
||||
msgid "Partitions"
|
||||
msgstr "分区"
|
||||
|
||||
msgid "Partitions: %d"
|
||||
msgstr "分区數: %d"
|
||||
|
||||
msgid "Unallocated"
|
||||
msgstr "未分配"
|
||||
|
||||
msgid "Unallocated Space"
|
||||
msgstr "未分配空間"
|
||||
|
||||
msgid "Data (in use)"
|
||||
msgstr "資料(使用中)"
|
||||
|
||||
msgid "Data (unmounted)"
|
||||
msgstr "資料(未卸載)"
|
||||
|
||||
msgid "Empty (no filesystem)"
|
||||
msgstr "空白(無檔案系統)"
|
||||
|
||||
msgid "System partition, protected"
|
||||
msgstr "系統分區,受保護"
|
||||
|
||||
msgid "Not mounted"
|
||||
msgstr "未掛載"
|
||||
|
||||
msgid "Mounted - unmount to delete"
|
||||
msgstr "已掛載 - 卸載後才能刪除"
|
||||
|
||||
msgid "Unmount this partition, then it can be formatted"
|
||||
msgstr "卸載此分區後即可格式化"
|
||||
|
||||
msgid "Mounted - unmount to format"
|
||||
msgstr "已掛載 - 卸載後才能格式化"
|
||||
|
||||
msgid "Actions"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Detach this partition from its mount point. Data is kept and it can be remounted; required before format or delete."
|
||||
msgstr "將分區從掛載點分離,資料保留且可再次掛載;格式化或刪除前必須先執行。"
|
||||
|
||||
msgid "Remove this partition from the partition table. Its space becomes unallocated and existing data is lost once overwritten."
|
||||
msgstr "從分區表中刪除該分區,空間變為未分配,原有資料被覆寫後不可恢復。"
|
||||
|
||||
msgid "Filesystem detected - mount it to use the existing data; no formatting needed."
|
||||
msgstr "偵測到檔案系統 - 直接掛載即可使用現有資料,無需格式化。"
|
||||
|
||||
msgid "Only use this if the partition cannot be mounted and its data is not needed. Formatting erases all data on the partition."
|
||||
msgstr "僅當分區無法掛載、且資料確定不再需要時使用;格式化將擦除該分區的全部資料。"
|
||||
|
||||
msgid "Change Partition Table"
|
||||
msgstr "變更分割表"
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr "確認"
|
||||
|
||||
msgid "Delete Partition"
|
||||
msgstr "刪除分區"
|
||||
|
||||
msgid "Delete Subvolume"
|
||||
msgstr "刪除子卷"
|
||||
|
||||
msgid "Eject Device"
|
||||
msgstr "彈出裝置"
|
||||
|
||||
msgid "Mount a device"
|
||||
msgstr "掛載裝置"
|
||||
msgid "-- No mountable partitions --"
|
||||
msgstr "沒有可掛載的分區"
|
||||
|
||||
msgid "Apply Table"
|
||||
msgstr "套用分割表"
|
||||
|
||||
msgid "Auto Mount"
|
||||
msgstr "自動掛載"
|
||||
|
||||
msgid "Btrfs Pools"
|
||||
msgstr "Btrfs 儲存集區"
|
||||
|
||||
msgid "Change mount point / options"
|
||||
msgstr "變更掛載點 / 選項"
|
||||
|
||||
msgid "Create Partition"
|
||||
msgstr "建立分割區"
|
||||
|
||||
msgid "Create a fresh GPT/MBR partition table"
|
||||
msgstr "建立全新的 GPT/MBR 分割表"
|
||||
|
||||
msgid "Create a new partition from the largest free region"
|
||||
msgstr "從最大剩餘空間建立新分割區"
|
||||
|
||||
msgid "Create a partition in this free region"
|
||||
msgstr "在此剩餘空間建立分割區"
|
||||
|
||||
msgid "Creating Btrfs will ERASE the selected members. Continue?"
|
||||
msgstr "建立 Btrfs 將抹掉所選成員磁碟。是否繼續?"
|
||||
|
||||
msgid "Creating a RAID array will ERASE the selected members. Continue?"
|
||||
msgstr "建立 RAID 陣列將抹掉所選成員磁碟。是否繼續?"
|
||||
|
||||
msgid "Data Profile"
|
||||
msgstr "資料設定"
|
||||
|
||||
msgid "Dest (opt)"
|
||||
msgstr "目標(選填)"
|
||||
|
||||
msgid "Detach this partition from its mount point; data is kept"
|
||||
msgstr "將此分割區從掛載點卸載;資料保留"
|
||||
|
||||
msgid "Device is in use! Please unmount all partitions first!"
|
||||
msgstr "裝置使用中!請先卸載所有分割區!"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "已停用"
|
||||
|
||||
msgid "Edit Mount"
|
||||
msgstr "編輯掛載"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "已啟用"
|
||||
|
||||
msgid "Failed to load Btrfs subvolumes."
|
||||
msgstr "載入 Btrfs 子卷失敗。"
|
||||
|
||||
msgid "Failed to load disk info."
|
||||
msgstr "載入磁碟資訊失敗。"
|
||||
|
||||
msgid "Formatting erases all data on the partition"
|
||||
msgstr "格式化將抹掉分割區上的所有資料"
|
||||
|
||||
msgid "Invalid Partition size!"
|
||||
msgstr "無效的分割區大小!"
|
||||
|
||||
msgid "Invalid Start sector!"
|
||||
msgstr "無效的起始扇區!"
|
||||
|
||||
msgid "Manage Partitions"
|
||||
msgstr "管理分割區"
|
||||
|
||||
msgid "Manage disks, partitions, RAID and Btrfs over LuCI."
|
||||
msgstr "透過 LuCI 管理磁碟、分割區、RAID 與 Btrfs。"
|
||||
|
||||
msgid "Maximum available: %s"
|
||||
msgstr "最大可用: %s"
|
||||
|
||||
msgid "Mount this partition"
|
||||
msgstr "掛載此分割區"
|
||||
|
||||
msgid "Mounted"
|
||||
msgstr "已掛載"
|
||||
|
||||
msgid "New Partition"
|
||||
msgstr "建立分割區"
|
||||
|
||||
msgid "New partition on /dev/%s. Start sector auto-detected and aligned to 1 MiB."
|
||||
msgstr "在 /dev/%s 上建立新分割區。起始扇區自動偵測並對齊到 1 MiB。"
|
||||
|
||||
msgid "No Btrfs filesystems."
|
||||
msgstr "沒有 Btrfs 檔案系統。"
|
||||
|
||||
msgid "No RAID arrays."
|
||||
msgstr "沒有 RAID 陣列。"
|
||||
|
||||
msgid "Partition Size"
|
||||
msgstr "分割區大小"
|
||||
|
||||
msgid "Physical Disks"
|
||||
msgstr "實體磁碟"
|
||||
|
||||
msgid "RAID Arrays"
|
||||
msgstr "RAID 陣列"
|
||||
|
||||
msgid "Read-only"
|
||||
msgstr "唯讀"
|
||||
|
||||
msgid "Remove this partition from the table; its space becomes unallocated"
|
||||
msgstr "從分割表刪除此分割區;其空間將變成未分配"
|
||||
|
||||
msgid "Serial: %s"
|
||||
msgstr "序號: %s"
|
||||
|
||||
msgid "Size exceeds the available free space."
|
||||
msgstr "大小超過可用的剩餘空間。"
|
||||
|
||||
msgid "Snapshot"
|
||||
msgstr "快照"
|
||||
|
||||
msgid "Source"
|
||||
msgstr "來源"
|
||||
|
||||
msgid "Unmounted"
|
||||
msgstr "未掛載"
|
||||
|
||||
msgid "sectors"
|
||||
msgstr "扇區"
|
||||
|
||||
msgid "(Distributed parity redundancy - needs at least 3 partitions)"
|
||||
msgstr "(分散式同位元冗餘 - 至少需 3 個分割區)"
|
||||
|
||||
msgid "(Double parity fault tolerance - needs at least 4 partitions)"
|
||||
msgstr "(雙重同位元容錯 - 至少需 4 個分割區)"
|
||||
|
||||
msgid "(Mirror + Stripe hybrid - performance with high fault tolerance)"
|
||||
msgstr "(鏡像+條帶混合 - 兼顧效能與高容錯)"
|
||||
|
||||
msgid "(Mirror - recommended dual-disk data fault tolerance, doubled read speed)"
|
||||
msgstr "(鏡像 - 推薦雙盤數據容錯冗餘,讀取速度加倍)"
|
||||
|
||||
msgid "(Stripe - high throughput, no redundancy, full capacity)"
|
||||
msgstr "(條帶化 - 高頻寬無冗餘,全盤容量疊加)"
|
||||
|
||||
msgid "(double metadata copies, recommended for important data)"
|
||||
msgstr "(雙份中繼數據保護,推薦用於重要數據)"
|
||||
|
||||
msgid "(multi-device mirror redundancy)"
|
||||
msgstr "(多裝置鏡像冗餘保護)"
|
||||
|
||||
msgid "(multi-device stripe for fast I/O)"
|
||||
msgstr "(多裝置條帶化高速讀寫)"
|
||||
|
||||
msgid "(single-device, maximizes usable capacity)"
|
||||
msgstr "(單裝置分配,最大化可用容量)"
|
||||
|
||||
msgid "Active RAID Arrays"
|
||||
msgstr "活動 RAID 陣列"
|
||||
|
||||
msgid "All currently unmounted free storage partitions are listed automatically."
|
||||
msgstr "已自動列出系統目前所有未掛載的空閒儲存分割區。"
|
||||
|
||||
msgid "Are you sure you want to stop and remove RAID array %s?"
|
||||
msgstr "確定要停止並移除 RAID 陣列 %s 嗎?"
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr "屬性"
|
||||
|
||||
msgid "Create Btrfs Pool"
|
||||
msgstr "建立 Btrfs 儲存池"
|
||||
|
||||
msgid "Detail"
|
||||
msgstr "詳細"
|
||||
|
||||
msgid "Failed to load Btrfs pools."
|
||||
msgstr "載入 Btrfs 儲存池失敗。"
|
||||
|
||||
msgid "Failed to stop array."
|
||||
msgstr "停止陣列失敗。"
|
||||
|
||||
msgid "Format and create a modern filesystem with snapshots, transparent compression and online growth"
|
||||
msgstr "格式化並建立支援快照、透明壓縮、線上擴容的現代檔案系統"
|
||||
|
||||
msgid "Healthy / Online"
|
||||
msgstr "健康線上"
|
||||
|
||||
msgid "Linux mdadm redundant array monitoring"
|
||||
msgstr "Linux mdadm 冗餘陣列監控"
|
||||
|
||||
msgid "Mount Path"
|
||||
msgstr "掛載路徑"
|
||||
|
||||
msgid "Please select at least one Btrfs member!"
|
||||
msgstr "請至少選擇一個 Btrfs 成員!"
|
||||
|
||||
msgid "Pool Label"
|
||||
msgstr "儲存池標籤"
|
||||
|
||||
msgid "RAID Details"
|
||||
msgstr "RAID 詳細"
|
||||
|
||||
msgid "Read/Write"
|
||||
msgstr "讀寫"
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "重設"
|
||||
|
||||
msgid "Select at least two RAID members!"
|
||||
msgstr "請至少選擇兩個 RAID 成員!"
|
||||
|
||||
msgid "Select two or more free partitions to build a high-reliability or high-performance array"
|
||||
msgstr "選擇兩個或多個空閒分割區組合成高可靠或高效能陣列"
|
||||
|
||||
msgid "Standard software RAID block device path, defaults to /dev/md1, /dev/md2..."
|
||||
msgstr "標準軟體 RAID 區塊裝置路徑,預設依序分配 /dev/md1、/dev/md2..."
|
||||
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
msgid "Stop Array"
|
||||
msgstr "停止陣列"
|
||||
|
||||
msgid "Stopping Array"
|
||||
msgstr "正在停止陣列"
|
||||
|
||||
msgid "Stopping RAID array..."
|
||||
msgstr "正在停止 RAID 陣列..."
|
||||
|
||||
msgid "Storage pool volume label, used as the mount / management identifier."
|
||||
msgstr "儲存池標籤名稱,作為掛載與管理識別標。"
|
||||
|
||||
msgid "Subvolume"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "Subvolumes & Snapshots"
|
||||
msgstr "子卷與快照"
|
||||
|
||||
msgid "next-gen CoW write-time-copy storage pool"
|
||||
msgstr "下一代 CoW 寫入時複製儲存池"
|
||||
|
||||
msgid "Kernel-managed (FIT)"
|
||||
msgstr "核心管理(FIT)"
|
||||
|
||||
msgid "Loaded by the bootloader and kernel from the FIT image; not mounted as a separate filesystem."
|
||||
msgstr "由開機程序與核心從 FIT 映像載入,不作為獨立檔案系統掛載。"
|
||||
|
||||
msgid "No free partitions available to select."
|
||||
msgstr "目前沒有可選擇的空閒分割區。"
|
||||
|
||||
|
||||
msgid "Key"
|
||||
msgstr "鍵"
|
||||
@@ -0,0 +1,900 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-diskbox 1.26.9\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-08-23 18:50+0800\n"
|
||||
"PO-Revision-Date: 2026-08-23 18:50+0800\n"
|
||||
"Last-Translator: permails <permails@github.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_Hans@li.org>
|
||||
"Language: zh_Hans
|
||||
"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"
|
||||
|
||||
msgid "DiskBox"
|
||||
msgstr "磁盘盒子"
|
||||
|
||||
msgid "DiskManager"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "DiskManger"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "DiskBox Disk Manager"
|
||||
msgstr "DiskBox 磁盘管理"
|
||||
|
||||
msgid "Disk Manager"
|
||||
msgstr "磁盘管理"
|
||||
|
||||
msgid "Manage disks over LuCI."
|
||||
msgstr "通过 LuCI 管理磁盘。"
|
||||
|
||||
msgid "Rescan Disks"
|
||||
msgstr "重新扫描磁盘"
|
||||
|
||||
msgid "Rescanning SCSI and RAID devices..."
|
||||
msgstr "正在重新扫描 SCSI 与 RAID 设备..."
|
||||
|
||||
msgid "Disks"
|
||||
msgstr "磁盘"
|
||||
|
||||
msgid "Path"
|
||||
msgstr "路径"
|
||||
|
||||
msgid "Model"
|
||||
msgstr "型号"
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr "序列号"
|
||||
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
msgid "Sector Size"
|
||||
msgstr "扇区大小"
|
||||
|
||||
msgid "Partition Table"
|
||||
msgstr "分区表"
|
||||
|
||||
msgid "Level"
|
||||
msgstr "级别"
|
||||
|
||||
msgid "Temp"
|
||||
msgstr "温度"
|
||||
|
||||
msgid "Members"
|
||||
msgstr "成员"
|
||||
|
||||
msgid "SATA Version"
|
||||
msgstr "SATA 版本"
|
||||
|
||||
msgid "Rotation Rate"
|
||||
msgstr "转速"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
msgid "Disk Health"
|
||||
msgstr "磁盘健康"
|
||||
|
||||
msgid "Power Status"
|
||||
msgstr "电源状态"
|
||||
|
||||
msgid "Temperature"
|
||||
msgstr "温度"
|
||||
|
||||
msgid "Health"
|
||||
msgstr "健康"
|
||||
|
||||
msgid "Health Status"
|
||||
msgstr "健康状态"
|
||||
|
||||
msgid "Normal"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Passed"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
msgid "Urgent"
|
||||
msgstr "严重"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失败"
|
||||
|
||||
msgid "Active"
|
||||
msgstr "活动"
|
||||
|
||||
msgid "Standby"
|
||||
msgstr "待机"
|
||||
|
||||
msgid "Sleep"
|
||||
msgstr "休眠"
|
||||
|
||||
msgid "Eject"
|
||||
msgstr "弹出"
|
||||
|
||||
msgid "Ejecting"
|
||||
msgstr "正在弹出"
|
||||
|
||||
msgid "Ejecting device..."
|
||||
msgstr "正在弹出设备..."
|
||||
|
||||
msgid "Failed to eject device."
|
||||
msgstr "弹出设备失败。"
|
||||
|
||||
msgid "Are you sure you want to eject/remove this device?"
|
||||
msgstr "确定要弹出/移除此设备吗?"
|
||||
|
||||
msgid "Partition is in use! Please unmount it first!"
|
||||
msgstr "分区正在使用中!请先卸载它!"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "编辑"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
msgid "RAID Devices"
|
||||
msgstr "RAID 设备"
|
||||
|
||||
msgid "RAID Level"
|
||||
msgstr "RAID 级别"
|
||||
|
||||
msgid "Btrfs"
|
||||
msgstr "Btrfs"
|
||||
|
||||
msgid "UUID"
|
||||
msgstr "UUID"
|
||||
|
||||
msgid "Label"
|
||||
msgstr "卷标"
|
||||
|
||||
msgid "Usage"
|
||||
msgstr "使用率"
|
||||
|
||||
msgid "Mount Points"
|
||||
msgstr "挂载点"
|
||||
|
||||
msgid "Device"
|
||||
msgstr "设备"
|
||||
|
||||
msgid "File System"
|
||||
msgstr "文件系统"
|
||||
|
||||
msgid "Mount Options"
|
||||
msgstr "挂载选项"
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr "挂载点"
|
||||
|
||||
msgid "Mount"
|
||||
msgstr "挂载"
|
||||
|
||||
msgid "Mounting"
|
||||
msgstr "正在挂载"
|
||||
|
||||
msgid "Mounting device..."
|
||||
msgstr "正在挂载设备..."
|
||||
|
||||
msgid "Failed to mount."
|
||||
msgstr "挂载失败。"
|
||||
|
||||
msgid "Unmount"
|
||||
msgstr "卸载"
|
||||
|
||||
msgid "Unmounting"
|
||||
msgstr "正在卸载"
|
||||
|
||||
msgid "Unmounting %s..."
|
||||
msgstr "正在卸载 %s..."
|
||||
|
||||
msgid "Failed to unmount."
|
||||
msgstr "卸载失败。"
|
||||
|
||||
msgid "Are you sure you want to unmount %s?"
|
||||
msgstr "确定要卸载 %s 吗?"
|
||||
|
||||
msgid "-- Please choose --"
|
||||
msgstr "-- 请选择 --"
|
||||
|
||||
msgid "Please select a device and input mount point!"
|
||||
msgstr "请选择设备并输入挂载点!"
|
||||
|
||||
msgid "Creation"
|
||||
msgstr "创建"
|
||||
|
||||
msgid "RAID"
|
||||
msgstr "RAID"
|
||||
|
||||
msgid "Create RAID"
|
||||
msgstr "创建 RAID"
|
||||
|
||||
msgid "RAID Name"
|
||||
msgstr "RAID 名称"
|
||||
|
||||
msgid "RAID Members"
|
||||
msgstr "磁盘阵列成员"
|
||||
|
||||
msgid "Creating RAID"
|
||||
msgstr "正在创建 RAID"
|
||||
|
||||
msgid "Creating RAID device..."
|
||||
msgstr "正在创建 RAID 设备..."
|
||||
|
||||
msgid "Failed to create RAID."
|
||||
msgstr "创建 RAID 失败。"
|
||||
|
||||
msgid "Please select RAID member disks/partitions!"
|
||||
msgstr "请选择 RAID 成员磁盘/分区!"
|
||||
|
||||
msgid "Create Btrfs"
|
||||
msgstr "创建 Btrfs"
|
||||
|
||||
msgid "Btrfs Label"
|
||||
msgstr "Btrfs 卷标"
|
||||
|
||||
msgid "Btrfs Raid Level"
|
||||
msgstr "Btrfs RAID 级别"
|
||||
|
||||
msgid "Btrfs Member"
|
||||
msgstr "Btrfs 成员"
|
||||
|
||||
msgid "Creating Btrfs"
|
||||
msgstr "正在创建 Btrfs"
|
||||
|
||||
msgid "Creating Btrfs filesystem..."
|
||||
msgstr "正在创建 Btrfs 文件系统..."
|
||||
|
||||
msgid "Failed to create Btrfs."
|
||||
msgstr "创建 Btrfs 失败。"
|
||||
|
||||
msgid "Please select Btrfs member disks/partitions!"
|
||||
msgstr "请选择 Btrfs 成员磁盘/分区!"
|
||||
|
||||
msgid "Partition Management"
|
||||
msgstr "分区管理"
|
||||
|
||||
msgid "Partition disk over LuCI."
|
||||
msgstr "通过 LuCI 分区磁盘。"
|
||||
|
||||
msgid "Partitions Info"
|
||||
msgstr "分区信息"
|
||||
|
||||
msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector"
|
||||
msgstr "默认 2048 扇区对齐,【终止扇区】支持输入 +容量{b,k,m,g,t} 格式,例:+500m +10g +1t"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
msgid "Start Sector"
|
||||
msgstr "起始扇区"
|
||||
|
||||
msgid "End Sector"
|
||||
msgstr "终止扇区"
|
||||
|
||||
msgid "Used"
|
||||
msgstr "已用"
|
||||
|
||||
msgid "Free Space"
|
||||
msgstr "空闲空间"
|
||||
|
||||
msgid "Extended Partition"
|
||||
msgstr "扩展分区"
|
||||
|
||||
msgid "Primary"
|
||||
msgstr "主分区"
|
||||
|
||||
msgid "Logical"
|
||||
msgstr "逻辑分区"
|
||||
|
||||
msgid "Unformatted"
|
||||
msgstr "未格式化"
|
||||
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
msgid "Creating Partition"
|
||||
msgstr "正在创建分区"
|
||||
|
||||
msgid "Creating new partition..."
|
||||
msgstr "正在创建新分区..."
|
||||
|
||||
msgid "Failed to create partition."
|
||||
msgstr "创建分区失败。"
|
||||
|
||||
msgid "Invalid Start or End sector!"
|
||||
msgstr "无效的起始或终止扇区!"
|
||||
|
||||
msgid "Deleting Partition"
|
||||
msgstr "正在删除分区"
|
||||
|
||||
msgid "Removing partition..."
|
||||
msgstr "正在删除分区..."
|
||||
|
||||
msgid "Failed to remove partition."
|
||||
msgstr "删除分区失败。"
|
||||
|
||||
msgid "Are you sure you want to delete partition %s?"
|
||||
msgstr "确定要删除分区 %s 吗?"
|
||||
|
||||
msgid "Format"
|
||||
msgstr "格式化"
|
||||
|
||||
msgid "Format partition: /dev/%s"
|
||||
msgstr "格式化分区:/dev/%s"
|
||||
|
||||
msgid "Formatting..."
|
||||
msgstr "正在格式化..."
|
||||
|
||||
msgid "Formatting partition will ERASE all data stored on it."
|
||||
msgstr "格式化分区将清除其上的所有数据!"
|
||||
|
||||
msgid "Partition formatted successfully!"
|
||||
msgstr "分区格式化成功!"
|
||||
|
||||
msgid "Format failed."
|
||||
msgstr "格式化失败。"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "关闭"
|
||||
|
||||
msgid "Back to Overview"
|
||||
msgstr "返回至概览"
|
||||
|
||||
msgid "Device Info"
|
||||
msgstr "设备信息"
|
||||
|
||||
msgid "Device /dev/%s not found or has no media."
|
||||
msgstr "未找到设备 /dev/%s 或无介质。"
|
||||
|
||||
msgid "Warning !!\nTHIS WILL OVERWRITE EXISTING PARTITIONS!!\nModify the partition table to %s?"
|
||||
msgstr "警告!!\n这将覆盖现有分区!!\n确定要将分区表修改为 %s 吗?"
|
||||
|
||||
msgid "Modifying Partition Table"
|
||||
msgstr "正在修改分区表"
|
||||
|
||||
msgid "Applying partition table..."
|
||||
msgstr "正在应用分区表..."
|
||||
|
||||
msgid "Failed to modify partition table."
|
||||
msgstr "修改分区表失败。"
|
||||
|
||||
msgid "S.M.A.R.T Attributes"
|
||||
msgstr "S.M.A.R.T 属性"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "正在收集数据..."
|
||||
|
||||
msgid "No SMART attributes to display."
|
||||
msgstr "暂无 SMART 属性显示。"
|
||||
|
||||
msgid "Attribute"
|
||||
msgstr "属性"
|
||||
|
||||
msgid "Flag"
|
||||
msgstr "标志"
|
||||
|
||||
msgid "Value"
|
||||
msgstr "当前值"
|
||||
|
||||
msgid "Worst"
|
||||
msgstr "最差值"
|
||||
|
||||
msgid "Thresh"
|
||||
msgstr "阈值"
|
||||
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
msgid "Updated"
|
||||
msgstr "更新状态"
|
||||
|
||||
msgid "Raw"
|
||||
msgstr "原始数据"
|
||||
|
||||
msgid "Btrfs Management"
|
||||
msgstr "Btrfs 管理"
|
||||
|
||||
msgid "Manage Btrfs filesystem, subvolumes and snapshots."
|
||||
msgstr "管理 Btrfs 文件系统、子卷与快照。"
|
||||
|
||||
msgid "Select a Btrfs filesystem to manage."
|
||||
msgstr "请选择要管理的 Btrfs 文件系统。"
|
||||
|
||||
msgid "No Btrfs filesystems found on this system."
|
||||
msgstr "系统中未找到 Btrfs 文件系统。"
|
||||
|
||||
msgid "Go to DiskBox to Create Btrfs"
|
||||
msgstr "前往 DiskBox 创建 Btrfs"
|
||||
|
||||
msgid "Available Btrfs Filesystems"
|
||||
msgstr "可用的 Btrfs 文件系统"
|
||||
|
||||
msgid "Btrfs Info"
|
||||
msgstr "Btrfs 信息"
|
||||
|
||||
msgid "Data"
|
||||
msgstr "数据"
|
||||
|
||||
msgid "Metadata"
|
||||
msgstr "元数据"
|
||||
|
||||
msgid "Updating Label"
|
||||
msgstr "正在更新卷标"
|
||||
|
||||
msgid "Updating Btrfs label..."
|
||||
msgstr "正在更新 Btrfs 卷标..."
|
||||
|
||||
msgid "Failed to update label."
|
||||
msgstr "更新卷标失败。"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
msgid "Subvolumes"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgid "Top Level"
|
||||
msgstr "顶层"
|
||||
|
||||
msgid "Set Default"
|
||||
msgstr "设为默认"
|
||||
|
||||
msgid "Default"
|
||||
msgstr "默认"
|
||||
|
||||
msgid "Setting Default"
|
||||
msgstr "正在设为默认"
|
||||
|
||||
msgid "Setting default subvolume..."
|
||||
msgstr "正在设置默认子卷..."
|
||||
|
||||
msgid "Failed to set default subvolume."
|
||||
msgstr "设置默认子卷失败。"
|
||||
|
||||
msgid "Deleting Subvolume"
|
||||
msgstr "正在删除子卷"
|
||||
|
||||
msgid "Deleting subvolume..."
|
||||
msgstr "正在删除子卷..."
|
||||
|
||||
msgid "Failed to delete subvolume."
|
||||
msgstr "删除子卷失败。"
|
||||
|
||||
msgid "Are you sure you want to delete subvolume %s?"
|
||||
msgstr "确定要删除子卷 %s 吗?"
|
||||
|
||||
msgid "Create"
|
||||
msgstr "创建"
|
||||
|
||||
msgid "New Subvolume"
|
||||
msgstr "新建子卷"
|
||||
|
||||
msgid "Creating Subvolume"
|
||||
msgstr "正在创建子卷"
|
||||
|
||||
msgid "Creating subvolume..."
|
||||
msgstr "正在创建子卷..."
|
||||
|
||||
msgid "Failed to create subvolume."
|
||||
msgstr "创建子卷失败。"
|
||||
|
||||
msgid "Subvolume path must start with '/'"
|
||||
msgstr "子卷路径必须以 '/' 开头"
|
||||
|
||||
msgid "New Snapshot"
|
||||
msgstr "新建快照"
|
||||
|
||||
msgid "Source Path"
|
||||
msgstr "来源路径"
|
||||
|
||||
msgid "Source path for creating snapshot (must start with '/')"
|
||||
msgstr "创建快照的来源路径(必须以 '/' 开头)"
|
||||
|
||||
msgid "Source path must start with '/'"
|
||||
msgstr "来源路径必须以 '/' 开头"
|
||||
|
||||
msgid "Read-Only"
|
||||
msgstr "只读"
|
||||
|
||||
msgid "Create as read-only snapshot"
|
||||
msgstr "创建为只读快照"
|
||||
|
||||
msgid "Destination Path (optional)"
|
||||
msgstr "目标路径(可选)"
|
||||
|
||||
msgid "Destination path where you want to store the snapshot"
|
||||
msgstr "存放快照的目标路径"
|
||||
|
||||
msgid "Create Snapshot"
|
||||
msgstr "创建快照"
|
||||
|
||||
msgid "Creating Snapshot"
|
||||
msgstr "正在创建快照"
|
||||
|
||||
msgid "Creating Btrfs snapshot..."
|
||||
msgstr "正在创建 Btrfs 快照..."
|
||||
|
||||
msgid "Failed to create snapshot."
|
||||
msgstr "创建快照失败。"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "加载中..."
|
||||
|
||||
msgid "Loading device info..."
|
||||
msgstr "正在加载设备信息..."
|
||||
|
||||
msgid "Loading Btrfs info..."
|
||||
msgstr "正在加载 Btrfs 信息..."
|
||||
msgid "Partitions"
|
||||
msgstr "分区"
|
||||
|
||||
msgid "Partitions: %d"
|
||||
msgstr "分区数: %d"
|
||||
|
||||
msgid "Unallocated Space"
|
||||
msgstr "未分配空间"
|
||||
|
||||
msgid "Unallocated"
|
||||
msgstr "未分配"
|
||||
|
||||
msgid "No storage partitions found."
|
||||
msgstr "未发现存储分区。"
|
||||
|
||||
msgid "No disks detected."
|
||||
msgstr "未检测到磁盘设备。"
|
||||
|
||||
msgid "Available Storage Partition"
|
||||
msgstr "可用存储分区"
|
||||
|
||||
msgid "Boot / Firmware (protected)"
|
||||
msgstr "启动 / 固件(受保护)"
|
||||
|
||||
msgid "Click to view SMART & Health details"
|
||||
msgstr "点击查看 SMART 与健康详情"
|
||||
|
||||
msgid "Force Format"
|
||||
msgstr "强制格式化"
|
||||
|
||||
msgid "No partitions (Raw Disk / Unpartitioned)"
|
||||
msgstr "无分区(裸盘 / 未分区)"
|
||||
|
||||
msgid "System"
|
||||
msgstr "系统"
|
||||
|
||||
msgid "System Data (in use)"
|
||||
msgstr "系统数据(使用中)"
|
||||
|
||||
msgid "System Firmware Partition"
|
||||
msgstr "系统固件分区"
|
||||
|
||||
msgid "System partition - cannot unmount"
|
||||
msgstr "系统分区 - 无法卸载"
|
||||
|
||||
msgid "System Reserved / Unavailable"
|
||||
msgstr "系统保留 / 不可用"
|
||||
|
||||
msgid "System RootFS / Overlay"
|
||||
msgstr "系统 RootFS / 叠加层"
|
||||
|
||||
msgid "This partition contains data."
|
||||
msgstr "此分区包含数据。"
|
||||
|
||||
msgid "Data (in use)"
|
||||
msgstr "数据(使用中)"
|
||||
|
||||
msgid "Data (unmounted)"
|
||||
msgstr "数据(未挂载)"
|
||||
|
||||
msgid "Empty (no filesystem)"
|
||||
msgstr "空白(无文件系统)"
|
||||
|
||||
msgid "System partition, protected"
|
||||
msgstr "系统分区,受保护"
|
||||
|
||||
msgid "Not mounted"
|
||||
msgstr "未挂载"
|
||||
|
||||
msgid "Mounted - unmount to delete"
|
||||
msgstr "已挂载 - 卸载后才能删除"
|
||||
|
||||
msgid "Unmount this partition, then it can be formatted"
|
||||
msgstr "卸载此分区后即可格式化"
|
||||
|
||||
msgid "Mounted - unmount to format"
|
||||
msgstr "已挂载 - 卸载后才能格式化"
|
||||
|
||||
msgid "Actions"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Detach this partition from its mount point. Data is kept and it can be remounted; required before format or delete."
|
||||
msgstr "将分区从挂载点分离,数据保留且可再次挂载;格式化或删除前必须先执行。"
|
||||
|
||||
msgid "Remove this partition from the partition table. Its space becomes unallocated and existing data is lost once overwritten."
|
||||
msgstr "从分区表中删除该分区,空间变为未分配,原有数据被覆写后不可恢复。"
|
||||
|
||||
msgid "Filesystem detected - mount it to use the existing data; no formatting needed."
|
||||
msgstr "检测到文件系统 - 直接挂载即可使用现有数据,无需格式化。"
|
||||
|
||||
msgid "Only use this if the partition cannot be mounted and its data is not needed. Formatting erases all data on the partition."
|
||||
msgstr "仅当分区无法挂载、且数据确定不再需要时使用;格式化将擦除该分区的全部数据。"
|
||||
|
||||
msgid "Change Partition Table"
|
||||
msgstr "更改分区表"
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr "确认"
|
||||
|
||||
msgid "Delete Partition"
|
||||
msgstr "删除分区"
|
||||
|
||||
msgid "Delete Subvolume"
|
||||
msgstr "删除子卷"
|
||||
|
||||
msgid "Eject Device"
|
||||
msgstr "弹出设备"
|
||||
|
||||
msgid "Mount a device"
|
||||
msgstr "挂载设备"
|
||||
msgid "-- No mountable partitions --"
|
||||
msgstr "没有可挂载的分区"
|
||||
|
||||
msgid "Apply Table"
|
||||
msgstr "应用分区表"
|
||||
|
||||
msgid "Auto Mount"
|
||||
msgstr "自动挂载"
|
||||
|
||||
msgid "Btrfs Pools"
|
||||
msgstr "Btrfs 存储池"
|
||||
|
||||
msgid "Change mount point / options"
|
||||
msgstr "更改挂载点 / 选项"
|
||||
|
||||
msgid "Create Partition"
|
||||
msgstr "新建分区"
|
||||
|
||||
msgid "Create a fresh GPT/MBR partition table"
|
||||
msgstr "创建全新的 GPT/MBR 分区表"
|
||||
|
||||
msgid "Create a new partition from the largest free region"
|
||||
msgstr "从最大空闲区域创建新分区"
|
||||
|
||||
msgid "Create a partition in this free region"
|
||||
msgstr "在此空闲区域创建分区"
|
||||
|
||||
msgid "Creating Btrfs will ERASE the selected members. Continue?"
|
||||
msgstr "创建 Btrfs 将擦除所选成员磁盘。继续?"
|
||||
|
||||
msgid "Creating a RAID array will ERASE the selected members. Continue?"
|
||||
msgstr "创建 RAID 阵列将擦除所选成员磁盘。继续?"
|
||||
|
||||
msgid "Data Profile"
|
||||
msgstr "数据配置"
|
||||
|
||||
msgid "Dest (opt)"
|
||||
msgstr "目标(可选)"
|
||||
|
||||
msgid "Detach this partition from its mount point; data is kept"
|
||||
msgstr "将此分区从挂载点卸载;数据保留"
|
||||
|
||||
msgid "Device is in use! Please unmount all partitions first!"
|
||||
msgstr "设备正在使用!请先卸载所有分区!"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "已禁用"
|
||||
|
||||
msgid "Edit Mount"
|
||||
msgstr "编辑挂载"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
msgid "Failed to load Btrfs subvolumes."
|
||||
msgstr "加载 Btrfs 子卷失败。"
|
||||
|
||||
msgid "Failed to load disk info."
|
||||
msgstr "加载磁盘信息失败。"
|
||||
|
||||
msgid "Formatting erases all data on the partition"
|
||||
msgstr "格式化将擦除分区上的所有数据"
|
||||
|
||||
msgid "Invalid Partition size!"
|
||||
msgstr "无效的分区大小!"
|
||||
|
||||
msgid "Invalid Start sector!"
|
||||
msgstr "无效的起始扇区!"
|
||||
|
||||
msgid "Manage Partitions"
|
||||
msgstr "管理分区"
|
||||
|
||||
msgid "Manage disks, partitions, RAID and Btrfs over LuCI."
|
||||
msgstr "通过 LuCI 管理磁盘、分区、RAID 和 Btrfs。"
|
||||
|
||||
msgid "Maximum available: %s"
|
||||
msgstr "最大可用: %s"
|
||||
|
||||
msgid "Mount this partition"
|
||||
msgstr "挂载此分区"
|
||||
|
||||
msgid "Mounted"
|
||||
msgstr "已挂载"
|
||||
|
||||
msgid "New Partition"
|
||||
msgstr "新建分区"
|
||||
|
||||
msgid "New partition on /dev/%s. Start sector auto-detected and aligned to 1 MiB."
|
||||
msgstr "在 /dev/%s 上新建分区。起始扇区自动检测并对齐到 1 MiB。"
|
||||
|
||||
msgid "No Btrfs filesystems."
|
||||
msgstr "没有 Btrfs 文件系统。"
|
||||
|
||||
msgid "No RAID arrays."
|
||||
msgstr "没有 RAID 阵列。"
|
||||
|
||||
msgid "Partition Size"
|
||||
msgstr "分区大小"
|
||||
|
||||
msgid "Physical Disks"
|
||||
msgstr "物理磁盘"
|
||||
|
||||
msgid "RAID Arrays"
|
||||
msgstr "RAID 阵列"
|
||||
|
||||
msgid "Read-only"
|
||||
msgstr "只读"
|
||||
|
||||
msgid "Remove this partition from the table; its space becomes unallocated"
|
||||
msgstr "从分区表中删除此分区;其空间变为未分配"
|
||||
|
||||
msgid "Serial: %s"
|
||||
msgstr "序列号: %s"
|
||||
|
||||
msgid "Size exceeds the available free space."
|
||||
msgstr "大小超过可用空闲空间。"
|
||||
|
||||
msgid "Snapshot"
|
||||
msgstr "快照"
|
||||
|
||||
msgid "Source"
|
||||
msgstr "源"
|
||||
|
||||
msgid "Unmounted"
|
||||
msgstr "未挂载"
|
||||
|
||||
msgid "sectors"
|
||||
msgstr "扇区"
|
||||
|
||||
msgid "(Distributed parity redundancy - needs at least 3 partitions)"
|
||||
msgstr "(分布式奇偶校验冗余 - 至少需 3 个分区)"
|
||||
|
||||
msgid "(Double parity fault tolerance - needs at least 4 partitions)"
|
||||
msgstr "(双重奇偶校验容错 - 至少需 4 个分区)"
|
||||
|
||||
msgid "(Mirror + Stripe hybrid - performance with high fault tolerance)"
|
||||
msgstr "(镜像+条带混合 - 兼顾性能与高容错)"
|
||||
|
||||
msgid "(Mirror - recommended dual-disk data fault tolerance, doubled read speed)"
|
||||
msgstr "(镜像 - 推荐双盘数据容错冗余,读取速度加倍)"
|
||||
|
||||
msgid "(Stripe - high throughput, no redundancy, full capacity)"
|
||||
msgstr "(条带化 - 高性能吞吐无冗余,全盘容量叠加)"
|
||||
|
||||
msgid "(double metadata copies, recommended for important data)"
|
||||
msgstr "(双份元数据保护,推荐用于重要数据)"
|
||||
|
||||
msgid "(multi-device mirror redundancy)"
|
||||
msgstr "(多盘镜像冗余保护)"
|
||||
|
||||
msgid "(multi-device stripe for fast I/O)"
|
||||
msgstr "(多盘条带化高速读写)"
|
||||
|
||||
msgid "(single-device, maximizes usable capacity)"
|
||||
msgstr "(单设备分配,最大化可用容量)"
|
||||
|
||||
msgid "Active RAID Arrays"
|
||||
msgstr "活动 RAID 阵列"
|
||||
|
||||
msgid "All currently unmounted free storage partitions are listed automatically."
|
||||
msgstr "已自动列出系统当前所有未挂载的空闲存储分区。"
|
||||
|
||||
msgid "Are you sure you want to stop and remove RAID array %s?"
|
||||
msgstr "确定要停止并移除 RAID 阵列 %s 吗?"
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr "属性"
|
||||
|
||||
msgid "Create Btrfs Pool"
|
||||
msgstr "创建 Btrfs 存储池"
|
||||
|
||||
msgid "Detail"
|
||||
msgstr "详情"
|
||||
|
||||
msgid "Failed to load Btrfs pools."
|
||||
msgstr "加载 Btrfs 存储池失败。"
|
||||
|
||||
msgid "Failed to stop array."
|
||||
msgstr "停止阵列失败。"
|
||||
|
||||
msgid "Format and create a modern filesystem with snapshots, transparent compression and online growth"
|
||||
msgstr "格式化并创建支持快照、透明压缩、在线扩容的现代文件系统"
|
||||
|
||||
msgid "Healthy / Online"
|
||||
msgstr "健康在线"
|
||||
|
||||
msgid "Linux mdadm redundant array monitoring"
|
||||
msgstr "Linux mdadm 冗余阵列监控"
|
||||
|
||||
msgid "Mount Path"
|
||||
msgstr "挂载路径"
|
||||
|
||||
msgid "Please select at least one Btrfs member!"
|
||||
msgstr "请至少选择一个 Btrfs 成员!"
|
||||
|
||||
msgid "Pool Label"
|
||||
msgstr "存储池卷标"
|
||||
|
||||
msgid "RAID Details"
|
||||
msgstr "RAID 详情"
|
||||
|
||||
msgid "Read/Write"
|
||||
msgstr "读写"
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
msgid "Select at least two RAID members!"
|
||||
msgstr "请至少选择两个 RAID 成员!"
|
||||
|
||||
msgid "Select two or more free partitions to build a high-reliability or high-performance array"
|
||||
msgstr "选择两个或多个空闲分区组合为高可靠或高性能阵列"
|
||||
|
||||
msgid "Standard software RAID block device path, defaults to /dev/md1, /dev/md2..."
|
||||
msgstr "标准软 RAID 块设备路径,默认依次分配 /dev/md1、/dev/md2..."
|
||||
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
msgid "Stop Array"
|
||||
msgstr "停止阵列"
|
||||
|
||||
msgid "Stopping Array"
|
||||
msgstr "正在停止阵列"
|
||||
|
||||
msgid "Stopping RAID array..."
|
||||
msgstr "正在停止 RAID 阵列..."
|
||||
|
||||
msgid "Storage pool volume label, used as the mount / management identifier."
|
||||
msgstr "存储池卷标名称,作为挂载与管理标识。"
|
||||
|
||||
msgid "Subvolume"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "Subvolumes & Snapshots"
|
||||
msgstr "子卷与快照"
|
||||
|
||||
msgid "next-gen CoW write-time-copy storage pool"
|
||||
msgstr "下一代 CoW 写时复制存储池"
|
||||
|
||||
msgid "Kernel-managed (FIT)"
|
||||
msgstr "内核管理(FIT)"
|
||||
|
||||
msgid "Loaded by the bootloader and kernel from the FIT image; not mounted as a separate filesystem."
|
||||
msgstr "由启动器与内核从 FIT 镜像加载,不作为独立文件系统挂载。"
|
||||
|
||||
msgid "No free partitions available to select."
|
||||
msgstr "当前没有可选择的空闲分区。"
|
||||
|
||||
|
||||
msgid "Key"
|
||||
msgstr "键"
|
||||
@@ -0,0 +1,900 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-diskbox 1.26.9\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-08-23 18:50+0800\n"
|
||||
"PO-Revision-Date: 2026-08-23 18:50+0800\n"
|
||||
"Last-Translator: permails <permails@github.com>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_Hant@li.org>
|
||||
"Language: zh_Hant
|
||||
"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"
|
||||
|
||||
msgid "DiskBox"
|
||||
msgstr "磁碟盒子"
|
||||
|
||||
msgid "DiskManager"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "DiskManger"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "DiskBox Disk Manager"
|
||||
msgstr "DiskBox 磁碟管理"
|
||||
|
||||
msgid "Disk Manager"
|
||||
msgstr "磁碟管理"
|
||||
|
||||
msgid "Manage disks over LuCI."
|
||||
msgstr "透過 LuCI 管理磁碟。"
|
||||
|
||||
msgid "Rescan Disks"
|
||||
msgstr "重新掃描磁碟"
|
||||
|
||||
msgid "Rescanning SCSI and RAID devices..."
|
||||
msgstr "正在重新掃描 SCSI 與 RAID 裝置..."
|
||||
|
||||
msgid "Disks"
|
||||
msgstr "磁碟"
|
||||
|
||||
msgid "Path"
|
||||
msgstr "路徑"
|
||||
|
||||
msgid "Model"
|
||||
msgstr "型號"
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr "序號"
|
||||
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
msgid "Sector Size"
|
||||
msgstr "磁區大小"
|
||||
|
||||
msgid "Partition Table"
|
||||
msgstr "分割表"
|
||||
|
||||
msgid "Level"
|
||||
msgstr "層級"
|
||||
|
||||
msgid "Temp"
|
||||
msgstr "溫度"
|
||||
|
||||
msgid "Members"
|
||||
msgstr "成員"
|
||||
|
||||
msgid "SATA Version"
|
||||
msgstr "SATA 版本"
|
||||
|
||||
msgid "Rotation Rate"
|
||||
msgstr "轉速"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "狀態"
|
||||
|
||||
msgid "Disk Health"
|
||||
msgstr "磁碟健康"
|
||||
|
||||
msgid "Power Status"
|
||||
msgstr "電源狀態"
|
||||
|
||||
msgid "Temperature"
|
||||
msgstr "溫度"
|
||||
|
||||
msgid "Health"
|
||||
msgstr "健康"
|
||||
|
||||
msgid "Health Status"
|
||||
msgstr "健康狀態"
|
||||
|
||||
msgid "Normal"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Passed"
|
||||
msgstr "正常"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
msgid "Urgent"
|
||||
msgstr "嚴重"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "Active"
|
||||
msgstr "活動"
|
||||
|
||||
msgid "Standby"
|
||||
msgstr "待機"
|
||||
|
||||
msgid "Sleep"
|
||||
msgstr "睡眠"
|
||||
|
||||
msgid "Eject"
|
||||
msgstr "退出"
|
||||
|
||||
msgid "Ejecting"
|
||||
msgstr "正在退出"
|
||||
|
||||
msgid "Ejecting device..."
|
||||
msgstr "正在退出裝置..."
|
||||
|
||||
msgid "Failed to eject device."
|
||||
msgstr "退出裝置失敗。"
|
||||
|
||||
msgid "Are you sure you want to eject/remove this device?"
|
||||
msgstr "確定要退出/移除此裝置嗎?"
|
||||
|
||||
msgid "Partition is in use! Please unmount it first!"
|
||||
msgstr "分割區正在使用中!請先卸載!"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "編輯"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "刪除"
|
||||
|
||||
msgid "RAID Devices"
|
||||
msgstr "RAID 裝置"
|
||||
|
||||
msgid "RAID Level"
|
||||
msgstr "RAID 層級"
|
||||
|
||||
msgid "Btrfs"
|
||||
msgstr "Btrfs"
|
||||
|
||||
msgid "UUID"
|
||||
msgstr "UUID"
|
||||
|
||||
msgid "Label"
|
||||
msgstr "標籤"
|
||||
|
||||
msgid "Usage"
|
||||
msgstr "使用率"
|
||||
|
||||
msgid "Mount Points"
|
||||
msgstr "掛載點"
|
||||
|
||||
msgid "Device"
|
||||
msgstr "裝置"
|
||||
|
||||
msgid "File System"
|
||||
msgstr "檔案系統"
|
||||
|
||||
msgid "Mount Options"
|
||||
msgstr "掛載選項"
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr "掛載點"
|
||||
|
||||
msgid "Mount"
|
||||
msgstr "掛載"
|
||||
|
||||
msgid "Mounting"
|
||||
msgstr "正在掛載"
|
||||
|
||||
msgid "Mounting device..."
|
||||
msgstr "正在掛載裝置..."
|
||||
|
||||
msgid "Failed to mount."
|
||||
msgstr "掛載失敗。"
|
||||
|
||||
msgid "Unmount"
|
||||
msgstr "卸載"
|
||||
|
||||
msgid "Unmounting"
|
||||
msgstr "正在卸載"
|
||||
|
||||
msgid "Unmounting %s..."
|
||||
msgstr "正在卸載 %s..."
|
||||
|
||||
msgid "Failed to unmount."
|
||||
msgstr "卸載失敗。"
|
||||
|
||||
msgid "Are you sure you want to unmount %s?"
|
||||
msgstr "確定要卸載 %s 嗎?"
|
||||
|
||||
msgid "-- Please choose --"
|
||||
msgstr "-- 請選擇 --"
|
||||
|
||||
msgid "Please select a device and input mount point!"
|
||||
msgstr "請選擇裝置並輸入掛載點!"
|
||||
|
||||
msgid "Creation"
|
||||
msgstr "建立"
|
||||
|
||||
msgid "RAID"
|
||||
msgstr "RAID"
|
||||
|
||||
msgid "Create RAID"
|
||||
msgstr "建立 RAID"
|
||||
|
||||
msgid "RAID Name"
|
||||
msgstr "RAID 名稱"
|
||||
|
||||
msgid "RAID Members"
|
||||
msgstr "磁碟陣列成員"
|
||||
|
||||
msgid "Creating RAID"
|
||||
msgstr "正在建立 RAID"
|
||||
|
||||
msgid "Creating RAID device..."
|
||||
msgstr "正在建立 RAID 裝置..."
|
||||
|
||||
msgid "Failed to create RAID."
|
||||
msgstr "建立 RAID 失敗。"
|
||||
|
||||
msgid "Please select RAID member disks/partitions!"
|
||||
msgstr "請選擇 RAID 成員磁碟/分割區!"
|
||||
|
||||
msgid "Create Btrfs"
|
||||
msgstr "建立 Btrfs"
|
||||
|
||||
msgid "Btrfs Label"
|
||||
msgstr "Btrfs 標籤"
|
||||
|
||||
msgid "Btrfs Raid Level"
|
||||
msgstr "Btrfs RAID 層級"
|
||||
|
||||
msgid "Btrfs Member"
|
||||
msgstr "Btrfs 成員"
|
||||
|
||||
msgid "Creating Btrfs"
|
||||
msgstr "正在建立 Btrfs"
|
||||
|
||||
msgid "Creating Btrfs filesystem..."
|
||||
msgstr "正在建立 Btrfs 檔案系統..."
|
||||
|
||||
msgid "Failed to create Btrfs."
|
||||
msgstr "建立 Btrfs 失敗。"
|
||||
|
||||
msgid "Please select Btrfs member disks/partitions!"
|
||||
msgstr "請選擇 Btrfs 成員磁碟/分割區!"
|
||||
|
||||
msgid "Partition Management"
|
||||
msgstr "分割區管理"
|
||||
|
||||
msgid "Partition disk over LuCI."
|
||||
msgstr "透過 LuCI 分割磁碟。"
|
||||
|
||||
msgid "Partitions Info"
|
||||
msgstr "分割區資訊"
|
||||
|
||||
msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector"
|
||||
msgstr "預設 2048 磁區對齊,【終止磁區】支援輸入 +容量{b,k,m,g,t} 格式,例如:+500m +10g +1t"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "名稱"
|
||||
|
||||
msgid "Start Sector"
|
||||
msgstr "起始磁區"
|
||||
|
||||
msgid "End Sector"
|
||||
msgstr "終止磁區"
|
||||
|
||||
msgid "Used"
|
||||
msgstr "已用"
|
||||
|
||||
msgid "Free Space"
|
||||
msgstr "可用空間"
|
||||
|
||||
msgid "Extended Partition"
|
||||
msgstr "擴充分割區"
|
||||
|
||||
msgid "Primary"
|
||||
msgstr "主要分割區"
|
||||
|
||||
msgid "Logical"
|
||||
msgstr "邏輯分割區"
|
||||
|
||||
msgid "Unformatted"
|
||||
msgstr "未格式化"
|
||||
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
msgid "Creating Partition"
|
||||
msgstr "正在建立分割區"
|
||||
|
||||
msgid "Creating new partition..."
|
||||
msgstr "正在建立新分割區..."
|
||||
|
||||
msgid "Failed to create partition."
|
||||
msgstr "建立分割區失敗。"
|
||||
|
||||
msgid "Invalid Start or End sector!"
|
||||
msgstr "無效的起始或終止磁區!"
|
||||
|
||||
msgid "Deleting Partition"
|
||||
msgstr "正在刪除分割區"
|
||||
|
||||
msgid "Removing partition..."
|
||||
msgstr "正在刪除分割區..."
|
||||
|
||||
msgid "Failed to remove partition."
|
||||
msgstr "刪除分割區失敗。"
|
||||
|
||||
msgid "Are you sure you want to delete partition %s?"
|
||||
msgstr "確定要刪除分割區 %s 嗎?"
|
||||
|
||||
msgid "Format"
|
||||
msgstr "格式化"
|
||||
|
||||
msgid "Format partition: /dev/%s"
|
||||
msgstr "格式化分割區:/dev/%s"
|
||||
|
||||
msgid "Formatting..."
|
||||
msgstr "正在格式化..."
|
||||
|
||||
msgid "Formatting partition will ERASE all data stored on it."
|
||||
msgstr "格式化分割區將清除其上的所有資料!"
|
||||
|
||||
msgid "Partition formatted successfully!"
|
||||
msgstr "分割區格式化成功!"
|
||||
|
||||
msgid "Format failed."
|
||||
msgstr "格式化失敗。"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "關閉"
|
||||
|
||||
msgid "Back to Overview"
|
||||
msgstr "返回至概覽"
|
||||
|
||||
msgid "Device Info"
|
||||
msgstr "裝置資訊"
|
||||
|
||||
msgid "Device /dev/%s not found or has no media."
|
||||
msgstr "未找到裝置 /dev/%s 或無媒體。"
|
||||
|
||||
msgid "Warning !!\nTHIS WILL OVERWRITE EXISTING PARTITIONS!!\nModify the partition table to %s?"
|
||||
msgstr "警告!!\n這將覆蓋現有分割區!!\n確定要將分割表修改為 %s 嗎?"
|
||||
|
||||
msgid "Modifying Partition Table"
|
||||
msgstr "正在修改分割表"
|
||||
|
||||
msgid "Applying partition table..."
|
||||
msgstr "正在套用分割表..."
|
||||
|
||||
msgid "Failed to modify partition table."
|
||||
msgstr "修改分割表失敗。"
|
||||
|
||||
msgid "S.M.A.R.T Attributes"
|
||||
msgstr "S.M.A.R.T 屬性"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "正在收集資料..."
|
||||
|
||||
msgid "No SMART attributes to display."
|
||||
msgstr "暫無 SMART 屬性顯示。"
|
||||
|
||||
msgid "Attribute"
|
||||
msgstr "屬性"
|
||||
|
||||
msgid "Flag"
|
||||
msgstr "標誌"
|
||||
|
||||
msgid "Value"
|
||||
msgstr "目前值"
|
||||
|
||||
msgid "Worst"
|
||||
msgstr "最差值"
|
||||
|
||||
msgid "Thresh"
|
||||
msgstr "閥值"
|
||||
|
||||
msgid "Type"
|
||||
msgstr "類型"
|
||||
|
||||
msgid "Updated"
|
||||
msgstr "更新狀態"
|
||||
|
||||
msgid "Raw"
|
||||
msgstr "原始資料"
|
||||
|
||||
msgid "Btrfs Management"
|
||||
msgstr "Btrfs 管理"
|
||||
|
||||
msgid "Manage Btrfs filesystem, subvolumes and snapshots."
|
||||
msgstr "管理 Btrfs 檔案系統、子卷與快照。"
|
||||
|
||||
msgid "Select a Btrfs filesystem to manage."
|
||||
msgstr "請選擇要管理的 Btrfs 檔案系統。"
|
||||
|
||||
msgid "No Btrfs filesystems found on this system."
|
||||
msgstr "系統中未找到 Btrfs 檔案系統。"
|
||||
|
||||
msgid "Go to DiskBox to Create Btrfs"
|
||||
msgstr "前往 DiskBox 建立 Btrfs"
|
||||
|
||||
msgid "Available Btrfs Filesystems"
|
||||
msgstr "可用的 Btrfs 檔案系統"
|
||||
|
||||
msgid "Btrfs Info"
|
||||
msgstr "Btrfs 資訊"
|
||||
|
||||
msgid "Data"
|
||||
msgstr "資料"
|
||||
|
||||
msgid "Metadata"
|
||||
msgstr "元資料"
|
||||
|
||||
msgid "Updating Label"
|
||||
msgstr "正在更新標籤"
|
||||
|
||||
msgid "Updating Btrfs label..."
|
||||
msgstr "正在更新 Btrfs 標籤..."
|
||||
|
||||
msgid "Failed to update label."
|
||||
msgstr "更新標籤失敗。"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
msgid "Subvolumes"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgid "Top Level"
|
||||
msgstr "頂層"
|
||||
|
||||
msgid "Set Default"
|
||||
msgstr "設為預設"
|
||||
|
||||
msgid "Default"
|
||||
msgstr "預設"
|
||||
|
||||
msgid "Setting Default"
|
||||
msgstr "正在設為預設"
|
||||
|
||||
msgid "Setting default subvolume..."
|
||||
msgstr "正在設定預設子卷..."
|
||||
|
||||
msgid "Failed to set default subvolume."
|
||||
msgstr "設定預設子卷失敗。"
|
||||
|
||||
msgid "Deleting Subvolume"
|
||||
msgstr "正在刪除子卷"
|
||||
|
||||
msgid "Deleting subvolume..."
|
||||
msgstr "正在刪除子卷..."
|
||||
|
||||
msgid "Failed to delete subvolume."
|
||||
msgstr "刪除子卷失敗。"
|
||||
|
||||
msgid "Are you sure you want to delete subvolume %s?"
|
||||
msgstr "確定要刪除子卷 %s 嗎?"
|
||||
|
||||
msgid "Create"
|
||||
msgstr "建立"
|
||||
|
||||
msgid "New Subvolume"
|
||||
msgstr "新建子卷"
|
||||
|
||||
msgid "Creating Subvolume"
|
||||
msgstr "正在建立子卷"
|
||||
|
||||
msgid "Creating subvolume..."
|
||||
msgstr "正在建立子卷..."
|
||||
|
||||
msgid "Failed to create subvolume."
|
||||
msgstr "建立子卷失敗。"
|
||||
|
||||
msgid "Subvolume path must start with '/'"
|
||||
msgstr "子卷路徑必須以 '/' 開頭"
|
||||
|
||||
msgid "New Snapshot"
|
||||
msgstr "新建快照"
|
||||
|
||||
msgid "Source Path"
|
||||
msgstr "來源路徑"
|
||||
|
||||
msgid "Source path for creating snapshot (must start with '/')"
|
||||
msgstr "建立快照的來源路徑(必須以 '/' 開頭)"
|
||||
|
||||
msgid "Source path must start with '/'"
|
||||
msgstr "來源路徑必須以 '/' 開頭"
|
||||
|
||||
msgid "Read-Only"
|
||||
msgstr "唯讀"
|
||||
|
||||
msgid "Create as read-only snapshot"
|
||||
msgstr "建立為唯讀快照"
|
||||
|
||||
msgid "Destination Path (optional)"
|
||||
msgstr "目標路徑(可選)"
|
||||
|
||||
msgid "Destination path where you want to store the snapshot"
|
||||
msgstr "存放快照的目標路徑"
|
||||
|
||||
msgid "Create Snapshot"
|
||||
msgstr "建立快照"
|
||||
|
||||
msgid "Creating Snapshot"
|
||||
msgstr "正在建立快照"
|
||||
|
||||
msgid "Creating Btrfs snapshot..."
|
||||
msgstr "正在建立 Btrfs 快照..."
|
||||
|
||||
msgid "Failed to create snapshot."
|
||||
msgstr "建立快照失敗。"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "載入中..."
|
||||
|
||||
msgid "Loading device info..."
|
||||
msgstr "正在載入裝置資訊..."
|
||||
|
||||
msgid "Loading Btrfs info..."
|
||||
msgstr "正在載入 Btrfs 資訊..."
|
||||
msgid "Available Storage Partition"
|
||||
msgstr "可用儲存分区"
|
||||
|
||||
msgid "Boot / Firmware (protected)"
|
||||
msgstr "開機 / 韌體(受保護)"
|
||||
|
||||
msgid "Click to view SMART & Health details"
|
||||
msgstr "點擊查看 SMART 與健康詳情"
|
||||
|
||||
msgid "Force Format"
|
||||
msgstr "強制格式化"
|
||||
|
||||
msgid "No partitions (Raw Disk / Unpartitioned)"
|
||||
msgstr "無分区(裸磁碟 / 未分区)"
|
||||
|
||||
msgid "System"
|
||||
msgstr "系統"
|
||||
|
||||
msgid "System Data (in use)"
|
||||
msgstr "系統資料(使用中)"
|
||||
|
||||
msgid "System Firmware Partition"
|
||||
msgstr "系統韌體分区"
|
||||
|
||||
msgid "System partition - cannot unmount"
|
||||
msgstr "系統分区 - 無法卸載"
|
||||
|
||||
msgid "System Reserved / Unavailable"
|
||||
msgstr "系統保留 / 不可用"
|
||||
|
||||
msgid "System RootFS / Overlay"
|
||||
msgstr "系統 RootFS / 疊加層"
|
||||
|
||||
msgid "This partition contains data."
|
||||
msgstr "此分区包含資料。"
|
||||
|
||||
msgid "No disks detected."
|
||||
msgstr "未偵測到磁碟設備。"
|
||||
|
||||
msgid "No storage partitions found."
|
||||
msgstr "未發現儲存分区。"
|
||||
|
||||
msgid "Partitions"
|
||||
msgstr "分区"
|
||||
|
||||
msgid "Partitions: %d"
|
||||
msgstr "分区數: %d"
|
||||
|
||||
msgid "Unallocated"
|
||||
msgstr "未分配"
|
||||
|
||||
msgid "Unallocated Space"
|
||||
msgstr "未分配空間"
|
||||
|
||||
msgid "Data (in use)"
|
||||
msgstr "資料(使用中)"
|
||||
|
||||
msgid "Data (unmounted)"
|
||||
msgstr "資料(未卸載)"
|
||||
|
||||
msgid "Empty (no filesystem)"
|
||||
msgstr "空白(無檔案系統)"
|
||||
|
||||
msgid "System partition, protected"
|
||||
msgstr "系統分區,受保護"
|
||||
|
||||
msgid "Not mounted"
|
||||
msgstr "未掛載"
|
||||
|
||||
msgid "Mounted - unmount to delete"
|
||||
msgstr "已掛載 - 卸載後才能刪除"
|
||||
|
||||
msgid "Unmount this partition, then it can be formatted"
|
||||
msgstr "卸載此分區後即可格式化"
|
||||
|
||||
msgid "Mounted - unmount to format"
|
||||
msgstr "已掛載 - 卸載後才能格式化"
|
||||
|
||||
msgid "Actions"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Detach this partition from its mount point. Data is kept and it can be remounted; required before format or delete."
|
||||
msgstr "將分區從掛載點分離,資料保留且可再次掛載;格式化或刪除前必須先執行。"
|
||||
|
||||
msgid "Remove this partition from the partition table. Its space becomes unallocated and existing data is lost once overwritten."
|
||||
msgstr "從分區表中刪除該分區,空間變為未分配,原有資料被覆寫後不可恢復。"
|
||||
|
||||
msgid "Filesystem detected - mount it to use the existing data; no formatting needed."
|
||||
msgstr "偵測到檔案系統 - 直接掛載即可使用現有資料,無需格式化。"
|
||||
|
||||
msgid "Only use this if the partition cannot be mounted and its data is not needed. Formatting erases all data on the partition."
|
||||
msgstr "僅當分區無法掛載、且資料確定不再需要時使用;格式化將擦除該分區的全部資料。"
|
||||
|
||||
msgid "Change Partition Table"
|
||||
msgstr "變更分割表"
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr "確認"
|
||||
|
||||
msgid "Delete Partition"
|
||||
msgstr "刪除分區"
|
||||
|
||||
msgid "Delete Subvolume"
|
||||
msgstr "刪除子卷"
|
||||
|
||||
msgid "Eject Device"
|
||||
msgstr "彈出裝置"
|
||||
|
||||
msgid "Mount a device"
|
||||
msgstr "掛載裝置"
|
||||
msgid "-- No mountable partitions --"
|
||||
msgstr "沒有可掛載的分區"
|
||||
|
||||
msgid "Apply Table"
|
||||
msgstr "套用分割表"
|
||||
|
||||
msgid "Auto Mount"
|
||||
msgstr "自動掛載"
|
||||
|
||||
msgid "Btrfs Pools"
|
||||
msgstr "Btrfs 儲存集區"
|
||||
|
||||
msgid "Change mount point / options"
|
||||
msgstr "變更掛載點 / 選項"
|
||||
|
||||
msgid "Create Partition"
|
||||
msgstr "建立分割區"
|
||||
|
||||
msgid "Create a fresh GPT/MBR partition table"
|
||||
msgstr "建立全新的 GPT/MBR 分割表"
|
||||
|
||||
msgid "Create a new partition from the largest free region"
|
||||
msgstr "從最大剩餘空間建立新分割區"
|
||||
|
||||
msgid "Create a partition in this free region"
|
||||
msgstr "在此剩餘空間建立分割區"
|
||||
|
||||
msgid "Creating Btrfs will ERASE the selected members. Continue?"
|
||||
msgstr "建立 Btrfs 將抹掉所選成員磁碟。是否繼續?"
|
||||
|
||||
msgid "Creating a RAID array will ERASE the selected members. Continue?"
|
||||
msgstr "建立 RAID 陣列將抹掉所選成員磁碟。是否繼續?"
|
||||
|
||||
msgid "Data Profile"
|
||||
msgstr "資料設定"
|
||||
|
||||
msgid "Dest (opt)"
|
||||
msgstr "目標(選填)"
|
||||
|
||||
msgid "Detach this partition from its mount point; data is kept"
|
||||
msgstr "將此分割區從掛載點卸載;資料保留"
|
||||
|
||||
msgid "Device is in use! Please unmount all partitions first!"
|
||||
msgstr "裝置使用中!請先卸載所有分割區!"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "已停用"
|
||||
|
||||
msgid "Edit Mount"
|
||||
msgstr "編輯掛載"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "已啟用"
|
||||
|
||||
msgid "Failed to load Btrfs subvolumes."
|
||||
msgstr "載入 Btrfs 子卷失敗。"
|
||||
|
||||
msgid "Failed to load disk info."
|
||||
msgstr "載入磁碟資訊失敗。"
|
||||
|
||||
msgid "Formatting erases all data on the partition"
|
||||
msgstr "格式化將抹掉分割區上的所有資料"
|
||||
|
||||
msgid "Invalid Partition size!"
|
||||
msgstr "無效的分割區大小!"
|
||||
|
||||
msgid "Invalid Start sector!"
|
||||
msgstr "無效的起始扇區!"
|
||||
|
||||
msgid "Manage Partitions"
|
||||
msgstr "管理分割區"
|
||||
|
||||
msgid "Manage disks, partitions, RAID and Btrfs over LuCI."
|
||||
msgstr "透過 LuCI 管理磁碟、分割區、RAID 與 Btrfs。"
|
||||
|
||||
msgid "Maximum available: %s"
|
||||
msgstr "最大可用: %s"
|
||||
|
||||
msgid "Mount this partition"
|
||||
msgstr "掛載此分割區"
|
||||
|
||||
msgid "Mounted"
|
||||
msgstr "已掛載"
|
||||
|
||||
msgid "New Partition"
|
||||
msgstr "建立分割區"
|
||||
|
||||
msgid "New partition on /dev/%s. Start sector auto-detected and aligned to 1 MiB."
|
||||
msgstr "在 /dev/%s 上建立新分割區。起始扇區自動偵測並對齊到 1 MiB。"
|
||||
|
||||
msgid "No Btrfs filesystems."
|
||||
msgstr "沒有 Btrfs 檔案系統。"
|
||||
|
||||
msgid "No RAID arrays."
|
||||
msgstr "沒有 RAID 陣列。"
|
||||
|
||||
msgid "Partition Size"
|
||||
msgstr "分割區大小"
|
||||
|
||||
msgid "Physical Disks"
|
||||
msgstr "實體磁碟"
|
||||
|
||||
msgid "RAID Arrays"
|
||||
msgstr "RAID 陣列"
|
||||
|
||||
msgid "Read-only"
|
||||
msgstr "唯讀"
|
||||
|
||||
msgid "Remove this partition from the table; its space becomes unallocated"
|
||||
msgstr "從分割表刪除此分割區;其空間將變成未分配"
|
||||
|
||||
msgid "Serial: %s"
|
||||
msgstr "序號: %s"
|
||||
|
||||
msgid "Size exceeds the available free space."
|
||||
msgstr "大小超過可用的剩餘空間。"
|
||||
|
||||
msgid "Snapshot"
|
||||
msgstr "快照"
|
||||
|
||||
msgid "Source"
|
||||
msgstr "來源"
|
||||
|
||||
msgid "Unmounted"
|
||||
msgstr "未掛載"
|
||||
|
||||
msgid "sectors"
|
||||
msgstr "扇區"
|
||||
|
||||
msgid "(Distributed parity redundancy - needs at least 3 partitions)"
|
||||
msgstr "(分散式同位元冗餘 - 至少需 3 個分割區)"
|
||||
|
||||
msgid "(Double parity fault tolerance - needs at least 4 partitions)"
|
||||
msgstr "(雙重同位元容錯 - 至少需 4 個分割區)"
|
||||
|
||||
msgid "(Mirror + Stripe hybrid - performance with high fault tolerance)"
|
||||
msgstr "(鏡像+條帶混合 - 兼顧效能與高容錯)"
|
||||
|
||||
msgid "(Mirror - recommended dual-disk data fault tolerance, doubled read speed)"
|
||||
msgstr "(鏡像 - 推薦雙盤數據容錯冗餘,讀取速度加倍)"
|
||||
|
||||
msgid "(Stripe - high throughput, no redundancy, full capacity)"
|
||||
msgstr "(條帶化 - 高頻寬無冗餘,全盤容量疊加)"
|
||||
|
||||
msgid "(double metadata copies, recommended for important data)"
|
||||
msgstr "(雙份中繼數據保護,推薦用於重要數據)"
|
||||
|
||||
msgid "(multi-device mirror redundancy)"
|
||||
msgstr "(多裝置鏡像冗餘保護)"
|
||||
|
||||
msgid "(multi-device stripe for fast I/O)"
|
||||
msgstr "(多裝置條帶化高速讀寫)"
|
||||
|
||||
msgid "(single-device, maximizes usable capacity)"
|
||||
msgstr "(單裝置分配,最大化可用容量)"
|
||||
|
||||
msgid "Active RAID Arrays"
|
||||
msgstr "活動 RAID 陣列"
|
||||
|
||||
msgid "All currently unmounted free storage partitions are listed automatically."
|
||||
msgstr "已自動列出系統目前所有未掛載的空閒儲存分割區。"
|
||||
|
||||
msgid "Are you sure you want to stop and remove RAID array %s?"
|
||||
msgstr "確定要停止並移除 RAID 陣列 %s 嗎?"
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr "屬性"
|
||||
|
||||
msgid "Create Btrfs Pool"
|
||||
msgstr "建立 Btrfs 儲存池"
|
||||
|
||||
msgid "Detail"
|
||||
msgstr "詳細"
|
||||
|
||||
msgid "Failed to load Btrfs pools."
|
||||
msgstr "載入 Btrfs 儲存池失敗。"
|
||||
|
||||
msgid "Failed to stop array."
|
||||
msgstr "停止陣列失敗。"
|
||||
|
||||
msgid "Format and create a modern filesystem with snapshots, transparent compression and online growth"
|
||||
msgstr "格式化並建立支援快照、透明壓縮、線上擴容的現代檔案系統"
|
||||
|
||||
msgid "Healthy / Online"
|
||||
msgstr "健康線上"
|
||||
|
||||
msgid "Linux mdadm redundant array monitoring"
|
||||
msgstr "Linux mdadm 冗餘陣列監控"
|
||||
|
||||
msgid "Mount Path"
|
||||
msgstr "掛載路徑"
|
||||
|
||||
msgid "Please select at least one Btrfs member!"
|
||||
msgstr "請至少選擇一個 Btrfs 成員!"
|
||||
|
||||
msgid "Pool Label"
|
||||
msgstr "儲存池標籤"
|
||||
|
||||
msgid "RAID Details"
|
||||
msgstr "RAID 詳細"
|
||||
|
||||
msgid "Read/Write"
|
||||
msgstr "讀寫"
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "重設"
|
||||
|
||||
msgid "Select at least two RAID members!"
|
||||
msgstr "請至少選擇兩個 RAID 成員!"
|
||||
|
||||
msgid "Select two or more free partitions to build a high-reliability or high-performance array"
|
||||
msgstr "選擇兩個或多個空閒分割區組合成高可靠或高效能陣列"
|
||||
|
||||
msgid "Standard software RAID block device path, defaults to /dev/md1, /dev/md2..."
|
||||
msgstr "標準軟體 RAID 區塊裝置路徑,預設依序分配 /dev/md1、/dev/md2..."
|
||||
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
msgid "Stop Array"
|
||||
msgstr "停止陣列"
|
||||
|
||||
msgid "Stopping Array"
|
||||
msgstr "正在停止陣列"
|
||||
|
||||
msgid "Stopping RAID array..."
|
||||
msgstr "正在停止 RAID 陣列..."
|
||||
|
||||
msgid "Storage pool volume label, used as the mount / management identifier."
|
||||
msgstr "儲存池標籤名稱,作為掛載與管理識別標。"
|
||||
|
||||
msgid "Subvolume"
|
||||
msgstr "子卷"
|
||||
|
||||
msgid "Subvolumes & Snapshots"
|
||||
msgstr "子卷與快照"
|
||||
|
||||
msgid "next-gen CoW write-time-copy storage pool"
|
||||
msgstr "下一代 CoW 寫入時複製儲存池"
|
||||
|
||||
msgid "Kernel-managed (FIT)"
|
||||
msgstr "核心管理(FIT)"
|
||||
|
||||
msgid "Loaded by the bootloader and kernel from the FIT image; not mounted as a separate filesystem."
|
||||
msgstr "由開機程序與核心從 FIT 映像載入,不作為獨立檔案系統掛載。"
|
||||
|
||||
msgid "No free partitions available to select."
|
||||
msgstr "目前沒有可選擇的空閒分割區。"
|
||||
|
||||
|
||||
msgid "Key"
|
||||
msgstr "鍵"
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
chmod 0755 /usr/libexec/rpcd/luci.diskbox 2>/dev/null || true
|
||||
exit 0
|
||||
+1736
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"admin/system/diskbox": {
|
||||
"title": "DiskManager",
|
||||
"order": 55,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "diskbox/disks"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-diskbox" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"luci-app-diskbox": {
|
||||
"description": "Grant access to LuCI DiskBox",
|
||||
"read": {
|
||||
"ubus": {
|
||||
"luci.diskbox": [
|
||||
"list_devices",
|
||||
"get_disk_info",
|
||||
"get_smart_attr",
|
||||
"get_format_cmd",
|
||||
"get_mount_points",
|
||||
"list_raid_devices",
|
||||
"list_btrfs_devices",
|
||||
"get_btrfs_info",
|
||||
"get_btrfs_subvolumes"
|
||||
]
|
||||
}
|
||||
},
|
||||
"write": {
|
||||
"ubus": {
|
||||
"luci.diskbox": [
|
||||
"format_partition",
|
||||
"mk_partition_table",
|
||||
"create_partition",
|
||||
"remove_partition",
|
||||
"mount",
|
||||
"umount",
|
||||
"eject_device",
|
||||
"rescan_disks",
|
||||
"create_raid",
|
||||
"create_btrfs",
|
||||
"btrfs_subvol_create",
|
||||
"btrfs_subvol_delete",
|
||||
"btrfs_subvol_set_default",
|
||||
"btrfs_set_label",
|
||||
"btrfs_snapshot_create"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user