You've already forked lazarus-ccr
Initial V0.1.8.0
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5403 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
340
applications/json_packager/deploywin/COPYING.GPL.txt
Normal file
340
applications/json_packager/deploywin/COPYING.GPL.txt
Normal file
@ -0,0 +1,340 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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
|
||||
this service 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.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
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
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE 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.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: 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
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
52
applications/json_packager/deploywin/json_packager.iss
Normal file
52
applications/json_packager/deploywin/json_packager.iss
Normal file
@ -0,0 +1,52 @@
|
||||
[Setup]
|
||||
AppName=External OPM JSON package Editor
|
||||
AppVersion=0.1.8.0
|
||||
DefaultDirName={pf}\OPMUtilities
|
||||
DefaultGroupName=OPM
|
||||
UninstallDisplayIcon={app}\jsoneditor.exe
|
||||
Compression=lzma2
|
||||
SolidCompression=yes
|
||||
OutputDir=.
|
||||
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
|
||||
; done in "64-bit mode" on x64, meaning it should use the native
|
||||
; 64-bit Program Files directory and the 64-bit view of the registry.
|
||||
; On all other architectures it will install in "32-bit mode".
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
; Note: We don't set ProcessorsAllowed because we want this
|
||||
; installation to run on all architectures (including Itanium,
|
||||
; since it's capable of running 32-bit code too).
|
||||
LicenseFile=COPYING.GPL.txt
|
||||
SetupIconFile=.\jsonpackage.ico
|
||||
MinVersion=0,5.01
|
||||
AppComments="Source code for this app is available on request"
|
||||
AppContact="lainz or minesadorada at http://forum.lazarus.freepascal.org/"
|
||||
AppCopyright="(c)2016 lainz and minesadorada"
|
||||
OutputBaseFilename=setup_jsoneditor
|
||||
AppPublisher="Open source software"
|
||||
AlwaysShowDirOnReadyPage=yes
|
||||
UsePreviousAppDir=no
|
||||
InfoBeforeFile="readmepreinstall.txt"
|
||||
InfoAfterFile="readme.txt"
|
||||
|
||||
[Files]
|
||||
; Install MyProg-x64.exe if running in 64-bit mode (x64; see above),
|
||||
; MyProg.exe otherwise.
|
||||
; Place all x64 files here
|
||||
Source: "jsoneditor64.exe"; DestDir: "{app}"; DestName: "jsoneditor.exe"; Check: Is64BitInstallMode
|
||||
; Place all x86 files here, first one should be marked 'solidbreak'
|
||||
Source: "jsoneditor.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode; Flags: solidbreak
|
||||
; Place all common files here, first one should be marked 'solidbreak'
|
||||
; Source: "readmepreinstall.txt"; DestDir: "{app}"; Flags: isreadme
|
||||
; Source: "readme.txt"; DestDir: "{app}"; Flags: isreadme
|
||||
Source: ".\locale\jsoneditor.en.po"; DestDir: "{app}\locale"; Flags: solidbreak
|
||||
Source: ".\locale\jsoneditor.es.po"; DestDir: "{app}\locale";
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\External OPM JSON package Editor"; Filename: "{app}\jsoneditor.exe"
|
||||
Name: "{group}\{cm:UninstallProgram, External OPM JSON package Editor}"; Filename: "{uninstallexe}"
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\jsoneditor.exe"; WorkingDir: "{app}"; Flags: postinstall runascurrentuser; Description: "Start the JSON Editor now"; StatusMsg: "Start the JSON Editor now"
|
||||
|
||||
[Dirs]
|
||||
Name: "{app}\locale"
|
BIN
applications/json_packager/deploywin/jsonpackage.ico
Normal file
BIN
applications/json_packager/deploywin/jsonpackage.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
347
applications/json_packager/deploywin/locale/jsoneditor.en.po
Normal file
347
applications/json_packager/deploywin/locale/jsoneditor.en.po
Normal file
@ -0,0 +1,347 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: en\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
|
||||
#: tfrmmain.btnadd.caption
|
||||
msgid "Add"
|
||||
msgstr "Add"
|
||||
|
||||
#: tfrmmain.btnadd.hint
|
||||
msgid ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
msgstr ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
|
||||
#: tfrmmain.btnremove.caption
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: tfrmmain.btnremove.hint
|
||||
msgid ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
msgstr ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
|
||||
#: tfrmmain.cbforceupdate.caption
|
||||
msgid "Force Update"
|
||||
msgstr "Force Update"
|
||||
|
||||
#: tfrmmain.cbforceupdate.hint
|
||||
msgid ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
msgstr ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
|
||||
#: tfrmmain.cmd_close.caption
|
||||
msgid "&Close"
|
||||
msgstr "&Close"
|
||||
|
||||
#: tfrmmain.cmd_save.caption
|
||||
msgid "&Save"
|
||||
msgstr "&Save"
|
||||
|
||||
#: tfrmmain.cmd_save.hint
|
||||
msgid ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
msgstr ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
|
||||
#: tfrmmain.editdownloadurl.hint
|
||||
msgid ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
msgstr ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
|
||||
#: tfrmmain.editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
msgstr ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
|
||||
#: tfrmmain.filemenu.caption
|
||||
msgid "File"
|
||||
msgstr "File"
|
||||
|
||||
#: tfrmmain.fileopen1.caption
|
||||
msgid "&Open ..."
|
||||
msgstr "&Open ..."
|
||||
|
||||
#: tfrmmain.fileopen1.hint
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: tfrmmain.filesaveas1.caption
|
||||
msgid "&Save As ..."
|
||||
msgstr "&Save As ..."
|
||||
|
||||
#: tfrmmain.filesaveas1.hint
|
||||
msgid "Save As"
|
||||
msgstr "Save As"
|
||||
|
||||
#: tfrmmain.lbldownloadurl.caption
|
||||
msgid "Download URL:"
|
||||
msgstr "Download URL:"
|
||||
|
||||
#: tfrmmain.lblname.caption
|
||||
msgid "Update Zip Name:"
|
||||
msgstr "Update Zip Name:"
|
||||
|
||||
#: tfrmmain.lblpackagefiles.caption
|
||||
msgid "Package Files:"
|
||||
msgstr "Package Files:"
|
||||
|
||||
#: tfrmmain.loaditem.caption
|
||||
msgid "Load..."
|
||||
msgstr "Load..."
|
||||
|
||||
#: tfrmmain.mnu_filenew.caption
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_filesave.caption
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
||||
#: tfrmmain.mnu_help.caption
|
||||
msgid "&Help"
|
||||
msgstr "&Help"
|
||||
|
||||
#: tfrmmain.mnu_helpabout.caption
|
||||
msgid "About.."
|
||||
msgstr "About.."
|
||||
|
||||
#: tfrmmain.mnu_helpdisablewarnings.caption
|
||||
msgid "Disable warnings"
|
||||
msgstr "Disable warnings"
|
||||
|
||||
#: tfrmmain.mnu_helpshowhints.caption
|
||||
msgid "Show Popup Hints"
|
||||
msgstr "Show Popup Hints"
|
||||
|
||||
#: tfrmmain.mnu_lang.caption
|
||||
msgid "Languages.."
|
||||
msgstr "Languages.."
|
||||
|
||||
#: tfrmmain.mnu_lang_en.caption
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: tfrmmain.mnu_lang_es.caption
|
||||
#, fuzzy
|
||||
msgid "Español"
|
||||
msgstr ""
|
||||
"Español\n"
|
||||
"Spanish\n"
|
||||
|
||||
#: tfrmmain.saveasitem.caption
|
||||
msgid "Save As..."
|
||||
msgstr "Save As..."
|
||||
|
||||
#: tfrmmain.sb_editname.caption
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: tfrmmain.sb_editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
msgstr ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
|
||||
#: tfrmmain.spd_checkurl.caption
|
||||
msgid "Check URL"
|
||||
msgstr "Check URL"
|
||||
|
||||
#: tfrmmain.spd_checkurl.hint
|
||||
msgid "Attempting to Open URL"
|
||||
msgstr "Attempting to Open URL"
|
||||
|
||||
#: tfrmmain.stringpackagefiles.hint
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Package Files:\n"
|
||||
#| "[Add]: to make a new entry\n"
|
||||
#| "[Remove]: Remove selected entry\n"
|
||||
#| "lpk filename: i.e. mycontrol.lpk\n"
|
||||
#| "Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgid ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgstr ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
|
||||
#: umain.rsabout
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
#: umain.rscompiledwith2
|
||||
msgid "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
msgstr "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
|
||||
#: umain.rsdownloadurld
|
||||
msgid "- Download URL does not contain the zipfile name"
|
||||
msgstr "- Download URL does not contain the zipfile name"
|
||||
|
||||
#: umain.rsdownloadurli
|
||||
msgid "- Download URL is too short or missing"
|
||||
msgstr "- Download URL is too short or missing"
|
||||
|
||||
#: umain.rsdownloadurli2
|
||||
msgid "- Download URL is incomplete"
|
||||
msgstr "- Download URL is incomplete"
|
||||
|
||||
#: umain.rsdownloadurls
|
||||
msgid "- Download URL should start with \"http\""
|
||||
msgstr "- Download URL should start with \"http\""
|
||||
|
||||
#: umain.rsfilemaybeuns
|
||||
msgid "JSON may be unsaved. Are you sure you want to quit?"
|
||||
msgstr "JSON may be unsaved. Are you sure you want to quit?"
|
||||
|
||||
#: umain.rsfixthentryag
|
||||
msgid "Fix, then try again."
|
||||
msgstr "Fix, then try again."
|
||||
|
||||
#: umain.rshelpandinfor
|
||||
msgid "Help and Information"
|
||||
msgstr "Help and Information"
|
||||
|
||||
#: umain.rshttpwwwupdat
|
||||
msgid "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
msgstr "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
|
||||
#: umain.rslanguagechan
|
||||
msgid "Language changed to \"%s\"."
|
||||
msgstr "Language changed to \"%s\"."
|
||||
|
||||
#: umain.rslpkfilename
|
||||
msgid "lpk FileName"
|
||||
msgstr "lpk FileName"
|
||||
|
||||
#: umain.rsmypackagenam
|
||||
msgid "mypackagename.zip"
|
||||
msgstr "mypackagename.zip"
|
||||
|
||||
#: umain.rsoneofthereq1
|
||||
msgid "One of the required fields is missing or wrong."
|
||||
msgstr "One of the required fields is missing or wrong."
|
||||
|
||||
#: umain.rsoneofthereqn
|
||||
msgid "One or more of the required fields are missing or wrong."
|
||||
msgstr "One or more of the required fields are missing or wrong."
|
||||
|
||||
#: umain.rsoverwrite
|
||||
msgid "Overwrite"
|
||||
msgstr "Overwrite"
|
||||
|
||||
#: umain.rssavedok
|
||||
msgid "Saved OK"
|
||||
msgstr "Saved OK"
|
||||
|
||||
#: umain.rssaveunsucces
|
||||
msgid "Save unsuccessful"
|
||||
msgstr "Save unsuccessful"
|
||||
|
||||
#: umain.rssorrycopyope
|
||||
msgid "Sorry - copy operation was unsuccessful"
|
||||
msgstr "Sorry - copy operation was unsuccessful"
|
||||
|
||||
#: umain.rssorrythislan
|
||||
msgid "Sorry, this language is unavailable at this time."
|
||||
msgstr "Sorry, this language is unavailable at this time."
|
||||
|
||||
#: umain.rsswassuccessf
|
||||
msgid "%s was successfully copied to the %s folder"
|
||||
msgstr "%s was successfully copied to the %s folder"
|
||||
|
||||
#: umain.rsthelpkentryd
|
||||
msgid "The .lpk entry #%d is missing the .lpk extension"
|
||||
msgstr "The .lpk entry #%d is missing the .lpk extension"
|
||||
|
||||
#: umain.rsthelpkentryd2
|
||||
msgid "The .lpk entry #%d is is absent"
|
||||
msgstr "The .lpk entry #%d is is absent"
|
||||
|
||||
#: umain.rstherearenolp
|
||||
msgid "- There are no .lpk files in the list yet"
|
||||
msgstr "- There are no .lpk files in the list yet"
|
||||
|
||||
#: umain.rsthisoptionsh
|
||||
msgid "This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsturnhintsoff
|
||||
msgid "(You can toggle these hints on/off in the Help menu)"
|
||||
msgstr "(You can toggle these hints on/off in the Help menu)"
|
||||
|
||||
#: umain.rsupdate
|
||||
msgid "Update"
|
||||
msgstr "Update"
|
||||
|
||||
#: umain.rsupdatezipnam
|
||||
msgid "- Update zip name is too short or missing"
|
||||
msgstr "- Update zip name is too short or missing"
|
||||
|
||||
#: umain.rsupdatezipnam2
|
||||
msgid "- Update zip name missing extension \".zip\""
|
||||
msgstr "- Update zip name missing extension \".zip\""
|
||||
|
||||
#: umain.rsversion0000
|
||||
msgid "Version (n.n.n.n)"
|
||||
msgstr "Version (n.n.n.n)"
|
||||
|
||||
#: umain.rsversionentry
|
||||
msgid "Version Entry #%d is absent"
|
||||
msgstr "Version Entry #%d is absent"
|
||||
|
||||
#: umain.rsversionentry2
|
||||
msgid "Version entry #%d needs to be of the form n.n.n.n"
|
||||
msgstr "Version entry #%d needs to be of the form n.n.n.n"
|
||||
|
||||
#: umain.rswouldyoulike
|
||||
msgid "Would you like to copy %s to the %s folder?"
|
||||
msgstr ""
|
||||
"Would you like to copy %s to the %s\n"
|
||||
"folder?\n"
|
||||
|
||||
#: umain.rsyoumayneedto
|
||||
msgid "(You may need to restart the app to see the change)"
|
||||
msgstr "(You may need to restart the app to see the change)"
|
||||
|
332
applications/json_packager/deploywin/locale/jsoneditor.es.po
Normal file
332
applications/json_packager/deploywin/locale/jsoneditor.es.po
Normal file
@ -0,0 +1,332 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
|
||||
#: tfrmmain.btnadd.caption
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: tfrmmain.btnadd.hint
|
||||
msgid ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
msgstr ""
|
||||
"Agregar Archivo de Paquete:\n"
|
||||
"El zip de actualización puede contener mas de un archivo lpk\n"
|
||||
"desplegado en el mismo lugar.\n"
|
||||
|
||||
#: tfrmmain.btnremove.caption
|
||||
msgid "Remove"
|
||||
msgstr "Quitar"
|
||||
|
||||
#: tfrmmain.btnremove.hint
|
||||
msgid ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
msgstr ""
|
||||
"Quitar Archivo de Paquete:\n"
|
||||
"Elimina la última entrada de la lista\n"
|
||||
|
||||
#: tfrmmain.cbforceupdate.caption
|
||||
msgid "Force Update"
|
||||
msgstr "Forzar Actualización"
|
||||
|
||||
#: tfrmmain.cbforceupdate.hint
|
||||
msgid ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
msgstr ""
|
||||
"Forzar Actualizaciones casilla de verificación:\n"
|
||||
"Si está chequeada el usuario de OPM será notificado\n"
|
||||
"de tu actualización. Solo activa esto si la actualización es importante.\n"
|
||||
|
||||
#: tfrmmain.cmd_close.caption
|
||||
msgctxt "tfrmmain.cmd_close.caption"
|
||||
msgid "&Close"
|
||||
msgstr "&Cerrar"
|
||||
|
||||
#: tfrmmain.cmd_save.caption
|
||||
msgid "&Save"
|
||||
msgstr "&Guardar"
|
||||
|
||||
#: tfrmmain.cmd_save.hint
|
||||
msgid ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
msgstr ""
|
||||
"Guardar la configuración actual al disco\n"
|
||||
"como un archivo JSON de actualización\n"
|
||||
|
||||
#: tfrmmain.editdownloadurl.hint
|
||||
msgid ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
msgstr ""
|
||||
"URL de Descarga:\n"
|
||||
"Incluye la URL completa necesaria para descargar el archivo de paquete zip\n"
|
||||
|
||||
#: tfrmmain.editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
msgstr ""
|
||||
"Nombre de Zip Actualizador:\n"
|
||||
"Este es solo el nombre del archivo (no incluye la ruta)\n"
|
||||
"de tu zip actualizador. Escribe o haz clic en [...]\n"
|
||||
|
||||
#: tfrmmain.filemenu.caption
|
||||
msgid "File"
|
||||
msgstr "Archivo"
|
||||
|
||||
#: tfrmmain.fileopen1.caption
|
||||
msgid "&Open ..."
|
||||
msgstr "&Abrir ..."
|
||||
|
||||
#: tfrmmain.fileopen1.hint
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: tfrmmain.filesaveas1.caption
|
||||
msgid "&Save As ..."
|
||||
msgstr "&Guardar Como ..."
|
||||
|
||||
#: tfrmmain.filesaveas1.hint
|
||||
msgid "Save As"
|
||||
msgstr "Guardar Como"
|
||||
|
||||
#: tfrmmain.lbldownloadurl.caption
|
||||
msgid "Download URL:"
|
||||
msgstr "URL de Descarga"
|
||||
|
||||
#: tfrmmain.lblname.caption
|
||||
msgid "Update Zip Name:"
|
||||
msgstr "Nombre de Zip Actualizador"
|
||||
|
||||
#: tfrmmain.lblpackagefiles.caption
|
||||
msgid "Package Files:"
|
||||
msgstr "Archivos del Paquete"
|
||||
|
||||
#: tfrmmain.loaditem.caption
|
||||
msgid "Load..."
|
||||
msgstr "Cargar..."
|
||||
|
||||
#: tfrmmain.mnu_filesave.caption
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: tfrmmain.mnu_help.caption
|
||||
msgid "&Help"
|
||||
msgstr "&Ayuda"
|
||||
|
||||
#: tfrmmain.mnu_helpabout.caption
|
||||
msgid "About.."
|
||||
msgstr "Acerca de..."
|
||||
|
||||
#: tfrmmain.mnu_helpdisablewarnings.caption
|
||||
msgid "Disable warnings"
|
||||
msgstr "Disable warnings"
|
||||
|
||||
#: tfrmmain.mnu_helpshowhints.caption
|
||||
msgid "Show Popup Hints"
|
||||
msgstr "Mostrar Consejos"
|
||||
|
||||
#: tfrmmain.mnu_lang.caption
|
||||
msgid "Languages.."
|
||||
msgstr "Idiomas..."
|
||||
|
||||
#: tfrmmain.mnu_lang_en.caption
|
||||
msgid "English"
|
||||
msgstr "Inglés"
|
||||
|
||||
#: tfrmmain.mnu_lang_es.caption
|
||||
msgid "Español"
|
||||
msgstr "Español"
|
||||
|
||||
#: tfrmmain.saveasitem.caption
|
||||
msgid "Save As..."
|
||||
msgstr "Guardar Como..."
|
||||
|
||||
#: tfrmmain.sb_editname.caption
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: tfrmmain.sb_editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
msgstr ""
|
||||
"Nombre de Zip Actualizador:\n"
|
||||
"Clic en esto para explorar tu sistema\n"
|
||||
" en búsqueda de un Zip Actualizador existente\n"
|
||||
|
||||
#: tfrmmain.spd_checkurl.caption
|
||||
msgid "Check URL"
|
||||
msgstr "Verificar URL"
|
||||
|
||||
#: tfrmmain.spd_checkurl.hint
|
||||
msgid "Attempting to Open URL"
|
||||
msgstr "Intento de Abrir URL"
|
||||
|
||||
#: tfrmmain.stringpackagefiles.hint
|
||||
msgid ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgstr ""
|
||||
"Archivos de Paquete:\n"
|
||||
"[Agregar]: para hacer una nueva entrada\n"
|
||||
"[Quitar]: quita la última entrada\n"
|
||||
"Archivo lpk: ejemplo micontrol.lpk\n"
|
||||
"Versión: La versión completa (ejemplo: no 1.0 pero si 1.0.0.0)\n"
|
||||
|
||||
#: umain.rsabout
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: umain.rscompiledwith2
|
||||
msgid "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
msgstr "Compilado con FPC V:%s y Lazarus V:%d.%d%s para la plataforma %s - %s %s%s"
|
||||
|
||||
#: umain.rsdownloadurld
|
||||
msgid "- Download URL does not contain the zipfile name"
|
||||
msgstr "- URL de descarga no contiene el nombre del zip"
|
||||
|
||||
#: umain.rsdownloadurli
|
||||
msgid "- Download URL is too short or missing"
|
||||
msgstr "- URL de descarga es muy corta o está vacía"
|
||||
|
||||
#: umain.rsdownloadurli2
|
||||
msgid "- Download URL is incomplete"
|
||||
msgstr "- URL de descarga incompleta"
|
||||
|
||||
#: umain.rsdownloadurls
|
||||
msgid "- Download URL should start with \"http\""
|
||||
msgstr "- URL de descarga debe empezar con \"http\""
|
||||
|
||||
#: umain.rsfilemaybeuns
|
||||
msgid "JSON may be unsaved. Are you sure you want to quit?"
|
||||
msgstr "JSON puede estar sin guardar. ¿Está seguro que desea salir?"
|
||||
|
||||
#: umain.rsfixthentryag
|
||||
msgid "Fix, then try again."
|
||||
msgstr "Arréglalo, luego intenta de nuevo."
|
||||
|
||||
#: umain.rshelpandinfor
|
||||
msgid "Help and Information"
|
||||
msgstr "Ayuda e Información"
|
||||
|
||||
#: umain.rshttpwwwupdat
|
||||
msgid "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
msgstr "http://www.sitioactualizacion.com/miactualizacion/nombredemipaquete.zip"
|
||||
|
||||
#: umain.rslanguagechan
|
||||
msgid "Language changed to \"%s\"."
|
||||
msgstr "Idioma cambiado a \"%s\"."
|
||||
|
||||
#: umain.rslpkfilename
|
||||
msgid "lpk FileName"
|
||||
msgstr "Archivo lpk"
|
||||
|
||||
#: umain.rsmypackagenam
|
||||
msgid "mypackagename.zip"
|
||||
msgstr "nombredemipaquete.zip"
|
||||
|
||||
#: umain.rsoneofthereq1
|
||||
msgid "One of the required fields is missing or wrong."
|
||||
msgstr "Uno de los campos requeridos esta vacío o mal."
|
||||
|
||||
#: umain.rsoneofthereqn
|
||||
msgctxt "umain.rsoneofthereqn"
|
||||
msgid "One or more of the required fields are missing or wrong."
|
||||
msgstr "Uno de los campos requeridos esta vacío o mal. Arréglalo, luego intenta de nuevo."
|
||||
|
||||
#: umain.rsoverwrite
|
||||
msgid "Overwrite"
|
||||
msgstr "Sobreescribir"
|
||||
|
||||
#: umain.rssavedok
|
||||
msgid "Saved OK"
|
||||
msgstr "Guardado OK"
|
||||
|
||||
#: umain.rssaveunsucces
|
||||
msgid "Save unsuccessful"
|
||||
msgstr "Guardado no satisfactorio"
|
||||
|
||||
#: umain.rssorrycopyope
|
||||
msgid "Sorry - copy operation was unsuccessful"
|
||||
msgstr "Lo siento, operación de copia insatisfactoria"
|
||||
|
||||
#: umain.rssorrythislan
|
||||
msgid "Sorry, this language is unavailable at this time."
|
||||
msgstr "Lo siento, este idioma no está disponible en este momento."
|
||||
|
||||
#: umain.rsswassuccessf
|
||||
msgid "%s was successfully copied to the %s folder"
|
||||
msgstr "%s fue satisfactoriamente copiado a la carpeta %s"
|
||||
|
||||
#: umain.rsthelpkentryd
|
||||
msgid "The .lpk entry #%d is missing the .lpk extension"
|
||||
msgstr "La entrada .lpk #%d no tiene la extensión .lpk"
|
||||
|
||||
#: umain.rsthelpkentryd2
|
||||
msgid "The .lpk entry #%d is is absent"
|
||||
msgstr "La entrada .lpk #%d está ausente"
|
||||
|
||||
#: umain.rstherearenolp
|
||||
msgid "- There are no .lpk files in the list yet"
|
||||
msgstr "- No hay ningún archivo .lpk en la lista todavía"
|
||||
|
||||
#: umain.rsthisoptionsh
|
||||
msgid "This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?"
|
||||
msgstr "Esta opción debe ser usada solamente para actualizaciones cruciales o paquetes con arreglos de bugs. ¿Estás de acuerdo con esto?"
|
||||
|
||||
#: umain.rsturnhintsoff
|
||||
msgid "(You can toggle these hints on/off in the Help menu)"
|
||||
msgstr "(Puedes cambiar estos consejos en el menú Ayuda)"
|
||||
|
||||
#: umain.rsupdate
|
||||
msgid "Update"
|
||||
msgstr "Actualización"
|
||||
|
||||
#: umain.rsupdatezipnam
|
||||
msgid "- Update zip name is too short or missing"
|
||||
msgstr "- El nombre del zip es muy corto o está vacío"
|
||||
|
||||
#: umain.rsupdatezipnam2
|
||||
msgid "- Update zip name missing extension \".zip\""
|
||||
msgstr "- El nombre del zip no tiene la extensión \".zip\""
|
||||
|
||||
#: umain.rsversion0000
|
||||
msgid "Version (n.n.n.n)"
|
||||
msgstr "Versión (n.n.n.n)"
|
||||
|
||||
#: umain.rsversionentry
|
||||
msgid "Version Entry #%d is absent"
|
||||
msgstr "Entrada de versión #%d está ausente"
|
||||
|
||||
#: umain.rsversionentry2
|
||||
msgid "Version entry #%d needs to be of the form n.n.n.n"
|
||||
msgstr "Entrada de versión #%d necesita ser de la forma n.n.n.n"
|
||||
|
||||
#: umain.rswouldyoulike
|
||||
msgid "Would you like to copy %s to the %s folder?"
|
||||
msgstr "¿Quieres copiar %s a la carpeta %s?"
|
||||
|
||||
#: umain.rsyoumayneedto
|
||||
msgid "(You may need to restart the app to see the change)"
|
||||
msgstr "(Quizás necesites reiniciar la aplicación para ver los cambios)"
|
16
applications/json_packager/deploywin/readme.txt
Normal file
16
applications/json_packager/deploywin/readme.txt
Normal file
@ -0,0 +1,16 @@
|
||||
README FOR External OPM JSON package Editor
|
||||
===========================================
|
||||
|
||||
* This application is for component writers who wish to publish updates for the Online Package Manager.
|
||||
|
||||
* The update is packaged in a ZIP file, and uploaded along with a configuration file in json format.
|
||||
|
||||
* The json file can be manually edited, but this GUI application can make and edit the JSON file so that it is always correct for OPM.
|
||||
|
||||
* On startup it will create an \updates folder which can be used as your deployment folder for the updated app.
|
||||
|
||||
* By default, it will start up in either Spanish or English (depending on your setup) and this can be changed via the Help menu item "Languages"
|
||||
|
||||
* On first run only, it will show tooltips to help you understand how to fill out the entries. They can be re-enabled at any time in the Help menu.
|
||||
|
||||
:Dec 2016
|
@ -0,0 +1,6 @@
|
||||
Choosing an installation folder
|
||||
===============================
|
||||
|
||||
* By default, this app will install into your Program Files folder.
|
||||
|
||||
* A better place to install it is in your development folder - where you have your component code
|
BIN
applications/json_packager/jsonpackage.ico
Normal file
BIN
applications/json_packager/jsonpackage.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
240
applications/json_packager/jsonpackage.lpi
Normal file
240
applications/json_packager/jsonpackage.lpi
Normal file
@ -0,0 +1,240 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="10"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="External OPM JSON package Editor"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
<TextName Value="CompanyName.ProductName.AppName"/>
|
||||
<TextDesc Value="Your application description."/>
|
||||
</XPManifest>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N Value="True"/>
|
||||
<OutDir Value="locale"/>
|
||||
</i18n>
|
||||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<MinorVersionNr Value="1"/>
|
||||
<RevisionNr Value="8"/>
|
||||
<StringTable Comments="Buld configured for Win Linux and Darwin" FileDescription="An editor for OnlinePackageManager update JSON files" InternalName="jsoneditor" LegalCopyright="(c)2016 usernames lainz and minesadorada @ forum.lazarus.freepascal.org" LegalTrademarks="GPL code" OriginalFilename="jsoneditor" ProductName="Lazarus and Freepascal" ProductVersion="1.x and 3.x"/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="5">
|
||||
<Item1 Name="Win32" Default="True"/>
|
||||
<Item2 Name="Win64">
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="compiled\win64\jsoneditor"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<SmartLinkUnit Value="True"/>
|
||||
<TargetCPU Value="x86_64"/>
|
||||
<TargetOS Value="win64"/>
|
||||
<Optimizations>
|
||||
<OptimizationLevel Value="3"/>
|
||||
</Optimizations>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
<Other>
|
||||
<CustomOptions Value="-FcUTF8"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
</Item2>
|
||||
<Item3 Name="Linux32">
|
||||
<MacroValues Count="1">
|
||||
<Macro2 Name="LCLWidgetType" Value="gtk2"/>
|
||||
</MacroValues>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="compiled\linux32\jsoneditor"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<TargetCPU Value="i386"/>
|
||||
<TargetOS Value="linux"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
</Item3>
|
||||
<Item4 Name="Linux64">
|
||||
<MacroValues Count="1">
|
||||
<Macro2 Name="LCLWidgetType" Value="gtk2"/>
|
||||
</MacroValues>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="compiled\linux64\jsoneditor"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<TargetCPU Value="x86_64"/>
|
||||
<TargetOS Value="linux"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
</Item4>
|
||||
<Item5 Name="Darwin32">
|
||||
<MacroValues Count="1">
|
||||
<Macro1 Name="LCLWidgetType" Value="carbon"/>
|
||||
</MacroValues>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="compiled\darwin32\jsoneditor"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<TargetCPU Value="i386"/>
|
||||
<TargetOS Value="darwin"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
</Item5>
|
||||
<SharedMatrixOptions Count="2">
|
||||
<Item1 ID="547331342457" Modes="Darwin32" Type="IDEMacro" MacroName="LCLWidgetType" Value="carbon"/>
|
||||
<Item2 ID="825864852453" Modes="Linux64,Linux32" Type="IDEMacro" MacroName="LCLWidgetType" Value="gtk2"/>
|
||||
</SharedMatrixOptions>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<CommandLineParams Value="--lang es"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="3">
|
||||
<Unit0>
|
||||
<Filename Value="jsonpackage.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="umain.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="frmMain"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="ugenericcollection.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit2>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="compiled\win32\jsoneditor"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<TargetCPU Value="i386"/>
|
||||
<TargetOS Value="win32"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
31
applications/json_packager/jsonpackage.lpr
Normal file
31
applications/json_packager/jsonpackage.lpr
Normal file
@ -0,0 +1,31 @@
|
||||
program jsonpackage;
|
||||
{$ifdef Linux}
|
||||
{$ifdef FPC_CROSSCOMPILING}
|
||||
{$ifdef CPUARM}
|
||||
//if GUI, then uncomment
|
||||
//{$linklib GLESv2}
|
||||
{$endif}
|
||||
{$linklib libc_nonshared.a}
|
||||
{$endif}
|
||||
{$endif}
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||
cthreads,
|
||||
{$ENDIF}{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, umain
|
||||
{ you can add units after this };
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Title:='External OPM JSON package Editor';
|
||||
RequireDerivedFormResource:=True;
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TfrmMain, frmMain);
|
||||
Application.Run;
|
||||
end.
|
||||
|
223
applications/json_packager/jsonpackage.lps
Normal file
223
applications/json_packager/jsonpackage.lps
Normal file
@ -0,0 +1,223 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectSession>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="10"/>
|
||||
<BuildModes Active="Linux64"/>
|
||||
<Units Count="11">
|
||||
<Unit0>
|
||||
<Filename Value="jsonpackage.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<CursorPos Y="30"/>
|
||||
<UsageCount Value="53"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="umain.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="frmMain"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<TopLine Value="348"/>
|
||||
<CursorPos X="18" Y="369"/>
|
||||
<UsageCount Value="53"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 Y="459"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="ugenericcollection.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UsageCount Value="53"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="D:\Lazarusprojects\golfml\egacalculator\source\umainform.pas"/>
|
||||
<ComponentName Value="mainform"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="541"/>
|
||||
<CursorPos X="3" Y="544"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="D:\Lazarusprojects\MDSUM\CryptINI\trunk\cryptinilpk\cryptini.pas"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="D:\Lazarusprojects\MDSUM\CryptINI\trunk\latest_stable\cryptinilpk\ucryptini.pas"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="1376"/>
|
||||
<CursorPos X="55" Y="1411"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="..\..\lazarus\lcl\defaulttranslator.pas"/>
|
||||
<UnitName Value="DefaultTranslator"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<CursorPos X="53" Y="29"/>
|
||||
<UsageCount Value="14"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="..\..\lazarus\lcl\lcltranslator.pas"/>
|
||||
<UnitName Value="LCLTranslator"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="517"/>
|
||||
<UsageCount Value="14"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
<Filename Value="..\..\NewPascal\lazarus\packager\registration\registerfcl.pas"/>
|
||||
<UnitName Value="RegisterFCL"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="24"/>
|
||||
<CursorPos X="42" Y="37"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="D:\lazarustrunk\common_components\onlinepackagemanager\onlinepackagemanager\opkman_mainfrm.pas"/>
|
||||
<HasResources Value="True"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="22"/>
|
||||
<CursorPos X="12" Y="23"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="D:\lazarustrunk\common_components\onlinepackagemanager\onlinepackagemanager\opkman_mainfrm.lfm"/>
|
||||
<ComponentName Value="MainFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<CursorPos X="6"/>
|
||||
<UsageCount Value="10"/>
|
||||
<DefaultSyntaxHighlighter Value="LFM"/>
|
||||
</Unit10>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="365" Column="83" TopLine="342"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="319" TopLine="316"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="471" Column="52" TopLine="467"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="319" Column="3" TopLine="317"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="331" Column="39" TopLine="328"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="431" Column="3" TopLine="429"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="315" Column="33" TopLine="305"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="712" Column="30" TopLine="677"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="463" TopLine="440"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="140" Column="70" TopLine="122"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="25" Column="13"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="306" Column="3" TopLine="271"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="35" Column="35" TopLine="13"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="371" Column="25" TopLine="353"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="380" Column="44" TopLine="360"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="386" Column="2" TopLine="359"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="2" Column="28"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="140" Column="44" TopLine="114"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="362" Column="58" TopLine="357"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="360" Column="121" TopLine="337"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="361" Column="39" TopLine="349"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="360" Column="70" TopLine="337"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="361" Column="58" TopLine="337"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="33" Column="22" TopLine="20"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="658" Column="77" TopLine="634"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="659" Column="77" TopLine="491"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="388" TopLine="357"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="145" TopLine="137"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="465" Column="23" TopLine="461"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="311" TopLine="303"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectSession>
|
||||
</CONFIG>
|
BIN
applications/json_packager/jsonpackage.res
Normal file
BIN
applications/json_packager/jsonpackage.res
Normal file
Binary file not shown.
347
applications/json_packager/locale/jsoneditor.en.po
Normal file
347
applications/json_packager/locale/jsoneditor.en.po
Normal file
@ -0,0 +1,347 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: en\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
|
||||
#: tfrmmain.btnadd.caption
|
||||
msgid "Add"
|
||||
msgstr "Add"
|
||||
|
||||
#: tfrmmain.btnadd.hint
|
||||
msgid ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
msgstr ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
|
||||
#: tfrmmain.btnremove.caption
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: tfrmmain.btnremove.hint
|
||||
msgid ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
msgstr ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
|
||||
#: tfrmmain.cbforceupdate.caption
|
||||
msgid "Force Update"
|
||||
msgstr "Force Update"
|
||||
|
||||
#: tfrmmain.cbforceupdate.hint
|
||||
msgid ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
msgstr ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
|
||||
#: tfrmmain.cmd_close.caption
|
||||
msgid "&Close"
|
||||
msgstr "&Close"
|
||||
|
||||
#: tfrmmain.cmd_save.caption
|
||||
msgid "&Save"
|
||||
msgstr "&Save"
|
||||
|
||||
#: tfrmmain.cmd_save.hint
|
||||
msgid ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
msgstr ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
|
||||
#: tfrmmain.editdownloadurl.hint
|
||||
msgid ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
msgstr ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
|
||||
#: tfrmmain.editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
msgstr ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
|
||||
#: tfrmmain.filemenu.caption
|
||||
msgid "File"
|
||||
msgstr "File"
|
||||
|
||||
#: tfrmmain.fileopen1.caption
|
||||
msgid "&Open ..."
|
||||
msgstr "&Open ..."
|
||||
|
||||
#: tfrmmain.fileopen1.hint
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: tfrmmain.filesaveas1.caption
|
||||
msgid "&Save As ..."
|
||||
msgstr "&Save As ..."
|
||||
|
||||
#: tfrmmain.filesaveas1.hint
|
||||
msgid "Save As"
|
||||
msgstr "Save As"
|
||||
|
||||
#: tfrmmain.lbldownloadurl.caption
|
||||
msgid "Download URL:"
|
||||
msgstr "Download URL:"
|
||||
|
||||
#: tfrmmain.lblname.caption
|
||||
msgid "Update Zip Name:"
|
||||
msgstr "Update Zip Name:"
|
||||
|
||||
#: tfrmmain.lblpackagefiles.caption
|
||||
msgid "Package Files:"
|
||||
msgstr "Package Files:"
|
||||
|
||||
#: tfrmmain.loaditem.caption
|
||||
msgid "Load..."
|
||||
msgstr "Load..."
|
||||
|
||||
#: tfrmmain.mnu_filenew.caption
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_filesave.caption
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
||||
#: tfrmmain.mnu_help.caption
|
||||
msgid "&Help"
|
||||
msgstr "&Help"
|
||||
|
||||
#: tfrmmain.mnu_helpabout.caption
|
||||
msgid "About.."
|
||||
msgstr "About.."
|
||||
|
||||
#: tfrmmain.mnu_helpdisablewarnings.caption
|
||||
msgid "Disable warnings"
|
||||
msgstr "Disable warnings"
|
||||
|
||||
#: tfrmmain.mnu_helpshowhints.caption
|
||||
msgid "Show Popup Hints"
|
||||
msgstr "Show Popup Hints"
|
||||
|
||||
#: tfrmmain.mnu_lang.caption
|
||||
msgid "Languages.."
|
||||
msgstr "Languages.."
|
||||
|
||||
#: tfrmmain.mnu_lang_en.caption
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: tfrmmain.mnu_lang_es.caption
|
||||
#, fuzzy
|
||||
msgid "Español"
|
||||
msgstr ""
|
||||
"Español\n"
|
||||
"Spanish\n"
|
||||
|
||||
#: tfrmmain.saveasitem.caption
|
||||
msgid "Save As..."
|
||||
msgstr "Save As..."
|
||||
|
||||
#: tfrmmain.sb_editname.caption
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: tfrmmain.sb_editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
msgstr ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
|
||||
#: tfrmmain.spd_checkurl.caption
|
||||
msgid "Check URL"
|
||||
msgstr "Check URL"
|
||||
|
||||
#: tfrmmain.spd_checkurl.hint
|
||||
msgid "Attempting to Open URL"
|
||||
msgstr "Attempting to Open URL"
|
||||
|
||||
#: tfrmmain.stringpackagefiles.hint
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Package Files:\n"
|
||||
#| "[Add]: to make a new entry\n"
|
||||
#| "[Remove]: Remove selected entry\n"
|
||||
#| "lpk filename: i.e. mycontrol.lpk\n"
|
||||
#| "Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgid ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgstr ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
|
||||
#: umain.rsabout
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
#: umain.rscompiledwith2
|
||||
msgid "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
msgstr "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
|
||||
#: umain.rsdownloadurld
|
||||
msgid "- Download URL does not contain the zipfile name"
|
||||
msgstr "- Download URL does not contain the zipfile name"
|
||||
|
||||
#: umain.rsdownloadurli
|
||||
msgid "- Download URL is too short or missing"
|
||||
msgstr "- Download URL is too short or missing"
|
||||
|
||||
#: umain.rsdownloadurli2
|
||||
msgid "- Download URL is incomplete"
|
||||
msgstr "- Download URL is incomplete"
|
||||
|
||||
#: umain.rsdownloadurls
|
||||
msgid "- Download URL should start with \"http\""
|
||||
msgstr "- Download URL should start with \"http\""
|
||||
|
||||
#: umain.rsfilemaybeuns
|
||||
msgid "JSON may be unsaved. Are you sure you want to quit?"
|
||||
msgstr "JSON may be unsaved. Are you sure you want to quit?"
|
||||
|
||||
#: umain.rsfixthentryag
|
||||
msgid "Fix, then try again."
|
||||
msgstr "Fix, then try again."
|
||||
|
||||
#: umain.rshelpandinfor
|
||||
msgid "Help and Information"
|
||||
msgstr "Help and Information"
|
||||
|
||||
#: umain.rshttpwwwupdat
|
||||
msgid "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
msgstr "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
|
||||
#: umain.rslanguagechan
|
||||
msgid "Language changed to \"%s\"."
|
||||
msgstr "Language changed to \"%s\"."
|
||||
|
||||
#: umain.rslpkfilename
|
||||
msgid "lpk FileName"
|
||||
msgstr "lpk FileName"
|
||||
|
||||
#: umain.rsmypackagenam
|
||||
msgid "mypackagename.zip"
|
||||
msgstr "mypackagename.zip"
|
||||
|
||||
#: umain.rsoneofthereq1
|
||||
msgid "One of the required fields is missing or wrong."
|
||||
msgstr "One of the required fields is missing or wrong."
|
||||
|
||||
#: umain.rsoneofthereqn
|
||||
msgid "One or more of the required fields are missing or wrong."
|
||||
msgstr "One or more of the required fields are missing or wrong."
|
||||
|
||||
#: umain.rsoverwrite
|
||||
msgid "Overwrite"
|
||||
msgstr "Overwrite"
|
||||
|
||||
#: umain.rssavedok
|
||||
msgid "Saved OK"
|
||||
msgstr "Saved OK"
|
||||
|
||||
#: umain.rssaveunsucces
|
||||
msgid "Save unsuccessful"
|
||||
msgstr "Save unsuccessful"
|
||||
|
||||
#: umain.rssorrycopyope
|
||||
msgid "Sorry - copy operation was unsuccessful"
|
||||
msgstr "Sorry - copy operation was unsuccessful"
|
||||
|
||||
#: umain.rssorrythislan
|
||||
msgid "Sorry, this language is unavailable at this time."
|
||||
msgstr "Sorry, this language is unavailable at this time."
|
||||
|
||||
#: umain.rsswassuccessf
|
||||
msgid "%s was successfully copied to the %s folder"
|
||||
msgstr "%s was successfully copied to the %s folder"
|
||||
|
||||
#: umain.rsthelpkentryd
|
||||
msgid "The .lpk entry #%d is missing the .lpk extension"
|
||||
msgstr "The .lpk entry #%d is missing the .lpk extension"
|
||||
|
||||
#: umain.rsthelpkentryd2
|
||||
msgid "The .lpk entry #%d is is absent"
|
||||
msgstr "The .lpk entry #%d is is absent"
|
||||
|
||||
#: umain.rstherearenolp
|
||||
msgid "- There are no .lpk files in the list yet"
|
||||
msgstr "- There are no .lpk files in the list yet"
|
||||
|
||||
#: umain.rsthisoptionsh
|
||||
msgid "This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsturnhintsoff
|
||||
msgid "(You can toggle these hints on/off in the Help menu)"
|
||||
msgstr "(You can toggle these hints on/off in the Help menu)"
|
||||
|
||||
#: umain.rsupdate
|
||||
msgid "Update"
|
||||
msgstr "Update"
|
||||
|
||||
#: umain.rsupdatezipnam
|
||||
msgid "- Update zip name is too short or missing"
|
||||
msgstr "- Update zip name is too short or missing"
|
||||
|
||||
#: umain.rsupdatezipnam2
|
||||
msgid "- Update zip name missing extension \".zip\""
|
||||
msgstr "- Update zip name missing extension \".zip\""
|
||||
|
||||
#: umain.rsversion0000
|
||||
msgid "Version (n.n.n.n)"
|
||||
msgstr "Version (n.n.n.n)"
|
||||
|
||||
#: umain.rsversionentry
|
||||
msgid "Version Entry #%d is absent"
|
||||
msgstr "Version Entry #%d is absent"
|
||||
|
||||
#: umain.rsversionentry2
|
||||
msgid "Version entry #%d needs to be of the form n.n.n.n"
|
||||
msgstr "Version entry #%d needs to be of the form n.n.n.n"
|
||||
|
||||
#: umain.rswouldyoulike
|
||||
msgid "Would you like to copy %s to the %s folder?"
|
||||
msgstr ""
|
||||
"Would you like to copy %s to the %s\n"
|
||||
"folder?\n"
|
||||
|
||||
#: umain.rsyoumayneedto
|
||||
msgid "(You may need to restart the app to see the change)"
|
||||
msgstr "(You may need to restart the app to see the change)"
|
||||
|
332
applications/json_packager/locale/jsoneditor.es.po
Normal file
332
applications/json_packager/locale/jsoneditor.es.po
Normal file
@ -0,0 +1,332 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
|
||||
#: tfrmmain.btnadd.caption
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: tfrmmain.btnadd.hint
|
||||
msgid ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
msgstr ""
|
||||
"Agregar Archivo de Paquete:\n"
|
||||
"El zip de actualización puede contener mas de un archivo lpk\n"
|
||||
"desplegado en el mismo lugar.\n"
|
||||
|
||||
#: tfrmmain.btnremove.caption
|
||||
msgid "Remove"
|
||||
msgstr "Quitar"
|
||||
|
||||
#: tfrmmain.btnremove.hint
|
||||
msgid ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
msgstr ""
|
||||
"Quitar Archivo de Paquete:\n"
|
||||
"Elimina la última entrada de la lista\n"
|
||||
|
||||
#: tfrmmain.cbforceupdate.caption
|
||||
msgid "Force Update"
|
||||
msgstr "Forzar Actualización"
|
||||
|
||||
#: tfrmmain.cbforceupdate.hint
|
||||
msgid ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
msgstr ""
|
||||
"Forzar Actualizaciones casilla de verificación:\n"
|
||||
"Si está chequeada el usuario de OPM será notificado\n"
|
||||
"de tu actualización. Solo activa esto si la actualización es importante.\n"
|
||||
|
||||
#: tfrmmain.cmd_close.caption
|
||||
msgctxt "tfrmmain.cmd_close.caption"
|
||||
msgid "&Close"
|
||||
msgstr "&Cerrar"
|
||||
|
||||
#: tfrmmain.cmd_save.caption
|
||||
msgid "&Save"
|
||||
msgstr "&Guardar"
|
||||
|
||||
#: tfrmmain.cmd_save.hint
|
||||
msgid ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
msgstr ""
|
||||
"Guardar la configuración actual al disco\n"
|
||||
"como un archivo JSON de actualización\n"
|
||||
|
||||
#: tfrmmain.editdownloadurl.hint
|
||||
msgid ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
msgstr ""
|
||||
"URL de Descarga:\n"
|
||||
"Incluye la URL completa necesaria para descargar el archivo de paquete zip\n"
|
||||
|
||||
#: tfrmmain.editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
msgstr ""
|
||||
"Nombre de Zip Actualizador:\n"
|
||||
"Este es solo el nombre del archivo (no incluye la ruta)\n"
|
||||
"de tu zip actualizador. Escribe o haz clic en [...]\n"
|
||||
|
||||
#: tfrmmain.filemenu.caption
|
||||
msgid "File"
|
||||
msgstr "Archivo"
|
||||
|
||||
#: tfrmmain.fileopen1.caption
|
||||
msgid "&Open ..."
|
||||
msgstr "&Abrir ..."
|
||||
|
||||
#: tfrmmain.fileopen1.hint
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: tfrmmain.filesaveas1.caption
|
||||
msgid "&Save As ..."
|
||||
msgstr "&Guardar Como ..."
|
||||
|
||||
#: tfrmmain.filesaveas1.hint
|
||||
msgid "Save As"
|
||||
msgstr "Guardar Como"
|
||||
|
||||
#: tfrmmain.lbldownloadurl.caption
|
||||
msgid "Download URL:"
|
||||
msgstr "URL de Descarga"
|
||||
|
||||
#: tfrmmain.lblname.caption
|
||||
msgid "Update Zip Name:"
|
||||
msgstr "Nombre de Zip Actualizador"
|
||||
|
||||
#: tfrmmain.lblpackagefiles.caption
|
||||
msgid "Package Files:"
|
||||
msgstr "Archivos del Paquete"
|
||||
|
||||
#: tfrmmain.loaditem.caption
|
||||
msgid "Load..."
|
||||
msgstr "Cargar..."
|
||||
|
||||
#: tfrmmain.mnu_filesave.caption
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: tfrmmain.mnu_help.caption
|
||||
msgid "&Help"
|
||||
msgstr "&Ayuda"
|
||||
|
||||
#: tfrmmain.mnu_helpabout.caption
|
||||
msgid "About.."
|
||||
msgstr "Acerca de..."
|
||||
|
||||
#: tfrmmain.mnu_helpdisablewarnings.caption
|
||||
msgid "Disable warnings"
|
||||
msgstr "Disable warnings"
|
||||
|
||||
#: tfrmmain.mnu_helpshowhints.caption
|
||||
msgid "Show Popup Hints"
|
||||
msgstr "Mostrar Consejos"
|
||||
|
||||
#: tfrmmain.mnu_lang.caption
|
||||
msgid "Languages.."
|
||||
msgstr "Idiomas..."
|
||||
|
||||
#: tfrmmain.mnu_lang_en.caption
|
||||
msgid "English"
|
||||
msgstr "Inglés"
|
||||
|
||||
#: tfrmmain.mnu_lang_es.caption
|
||||
msgid "Español"
|
||||
msgstr "Español"
|
||||
|
||||
#: tfrmmain.saveasitem.caption
|
||||
msgid "Save As..."
|
||||
msgstr "Guardar Como..."
|
||||
|
||||
#: tfrmmain.sb_editname.caption
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: tfrmmain.sb_editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
msgstr ""
|
||||
"Nombre de Zip Actualizador:\n"
|
||||
"Clic en esto para explorar tu sistema\n"
|
||||
" en búsqueda de un Zip Actualizador existente\n"
|
||||
|
||||
#: tfrmmain.spd_checkurl.caption
|
||||
msgid "Check URL"
|
||||
msgstr "Verificar URL"
|
||||
|
||||
#: tfrmmain.spd_checkurl.hint
|
||||
msgid "Attempting to Open URL"
|
||||
msgstr "Intento de Abrir URL"
|
||||
|
||||
#: tfrmmain.stringpackagefiles.hint
|
||||
msgid ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgstr ""
|
||||
"Archivos de Paquete:\n"
|
||||
"[Agregar]: para hacer una nueva entrada\n"
|
||||
"[Quitar]: quita la última entrada\n"
|
||||
"Archivo lpk: ejemplo micontrol.lpk\n"
|
||||
"Versión: La versión completa (ejemplo: no 1.0 pero si 1.0.0.0)\n"
|
||||
|
||||
#: umain.rsabout
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: umain.rscompiledwith2
|
||||
msgid "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
msgstr "Compilado con FPC V:%s y Lazarus V:%d.%d%s para la plataforma %s - %s %s%s"
|
||||
|
||||
#: umain.rsdownloadurld
|
||||
msgid "- Download URL does not contain the zipfile name"
|
||||
msgstr "- URL de descarga no contiene el nombre del zip"
|
||||
|
||||
#: umain.rsdownloadurli
|
||||
msgid "- Download URL is too short or missing"
|
||||
msgstr "- URL de descarga es muy corta o está vacía"
|
||||
|
||||
#: umain.rsdownloadurli2
|
||||
msgid "- Download URL is incomplete"
|
||||
msgstr "- URL de descarga incompleta"
|
||||
|
||||
#: umain.rsdownloadurls
|
||||
msgid "- Download URL should start with \"http\""
|
||||
msgstr "- URL de descarga debe empezar con \"http\""
|
||||
|
||||
#: umain.rsfilemaybeuns
|
||||
msgid "JSON may be unsaved. Are you sure you want to quit?"
|
||||
msgstr "JSON puede estar sin guardar. ¿Está seguro que desea salir?"
|
||||
|
||||
#: umain.rsfixthentryag
|
||||
msgid "Fix, then try again."
|
||||
msgstr "Arréglalo, luego intenta de nuevo."
|
||||
|
||||
#: umain.rshelpandinfor
|
||||
msgid "Help and Information"
|
||||
msgstr "Ayuda e Información"
|
||||
|
||||
#: umain.rshttpwwwupdat
|
||||
msgid "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
msgstr "http://www.sitioactualizacion.com/miactualizacion/nombredemipaquete.zip"
|
||||
|
||||
#: umain.rslanguagechan
|
||||
msgid "Language changed to \"%s\"."
|
||||
msgstr "Idioma cambiado a \"%s\"."
|
||||
|
||||
#: umain.rslpkfilename
|
||||
msgid "lpk FileName"
|
||||
msgstr "Archivo lpk"
|
||||
|
||||
#: umain.rsmypackagenam
|
||||
msgid "mypackagename.zip"
|
||||
msgstr "nombredemipaquete.zip"
|
||||
|
||||
#: umain.rsoneofthereq1
|
||||
msgid "One of the required fields is missing or wrong."
|
||||
msgstr "Uno de los campos requeridos esta vacío o mal."
|
||||
|
||||
#: umain.rsoneofthereqn
|
||||
msgctxt "umain.rsoneofthereqn"
|
||||
msgid "One or more of the required fields are missing or wrong."
|
||||
msgstr "Uno de los campos requeridos esta vacío o mal. Arréglalo, luego intenta de nuevo."
|
||||
|
||||
#: umain.rsoverwrite
|
||||
msgid "Overwrite"
|
||||
msgstr "Sobreescribir"
|
||||
|
||||
#: umain.rssavedok
|
||||
msgid "Saved OK"
|
||||
msgstr "Guardado OK"
|
||||
|
||||
#: umain.rssaveunsucces
|
||||
msgid "Save unsuccessful"
|
||||
msgstr "Guardado no satisfactorio"
|
||||
|
||||
#: umain.rssorrycopyope
|
||||
msgid "Sorry - copy operation was unsuccessful"
|
||||
msgstr "Lo siento, operación de copia insatisfactoria"
|
||||
|
||||
#: umain.rssorrythislan
|
||||
msgid "Sorry, this language is unavailable at this time."
|
||||
msgstr "Lo siento, este idioma no está disponible en este momento."
|
||||
|
||||
#: umain.rsswassuccessf
|
||||
msgid "%s was successfully copied to the %s folder"
|
||||
msgstr "%s fue satisfactoriamente copiado a la carpeta %s"
|
||||
|
||||
#: umain.rsthelpkentryd
|
||||
msgid "The .lpk entry #%d is missing the .lpk extension"
|
||||
msgstr "La entrada .lpk #%d no tiene la extensión .lpk"
|
||||
|
||||
#: umain.rsthelpkentryd2
|
||||
msgid "The .lpk entry #%d is is absent"
|
||||
msgstr "La entrada .lpk #%d está ausente"
|
||||
|
||||
#: umain.rstherearenolp
|
||||
msgid "- There are no .lpk files in the list yet"
|
||||
msgstr "- No hay ningún archivo .lpk en la lista todavía"
|
||||
|
||||
#: umain.rsthisoptionsh
|
||||
msgid "This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?"
|
||||
msgstr "Esta opción debe ser usada solamente para actualizaciones cruciales o paquetes con arreglos de bugs. ¿Estás de acuerdo con esto?"
|
||||
|
||||
#: umain.rsturnhintsoff
|
||||
msgid "(You can toggle these hints on/off in the Help menu)"
|
||||
msgstr "(Puedes cambiar estos consejos en el menú Ayuda)"
|
||||
|
||||
#: umain.rsupdate
|
||||
msgid "Update"
|
||||
msgstr "Actualización"
|
||||
|
||||
#: umain.rsupdatezipnam
|
||||
msgid "- Update zip name is too short or missing"
|
||||
msgstr "- El nombre del zip es muy corto o está vacío"
|
||||
|
||||
#: umain.rsupdatezipnam2
|
||||
msgid "- Update zip name missing extension \".zip\""
|
||||
msgstr "- El nombre del zip no tiene la extensión \".zip\""
|
||||
|
||||
#: umain.rsversion0000
|
||||
msgid "Version (n.n.n.n)"
|
||||
msgstr "Versión (n.n.n.n)"
|
||||
|
||||
#: umain.rsversionentry
|
||||
msgid "Version Entry #%d is absent"
|
||||
msgstr "Entrada de versión #%d está ausente"
|
||||
|
||||
#: umain.rsversionentry2
|
||||
msgid "Version entry #%d needs to be of the form n.n.n.n"
|
||||
msgstr "Entrada de versión #%d necesita ser de la forma n.n.n.n"
|
||||
|
||||
#: umain.rswouldyoulike
|
||||
msgid "Would you like to copy %s to the %s folder?"
|
||||
msgstr "¿Quieres copiar %s a la carpeta %s?"
|
||||
|
||||
#: umain.rsyoumayneedto
|
||||
msgid "(You may need to restart the app to see the change)"
|
||||
msgstr "(Quizás necesites reiniciar la aplicación para ver los cambios)"
|
302
applications/json_packager/locale/jsoneditor.po
Normal file
302
applications/json_packager/locale/jsoneditor.po
Normal file
@ -0,0 +1,302 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: tfrmmain.btnadd.caption
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.btnadd.hint
|
||||
msgid ""
|
||||
"Add Package File:\n"
|
||||
"The update zip can contain more than one lpk file\n"
|
||||
"deployed to the same place.\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.btnremove.caption
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.btnremove.hint
|
||||
msgid ""
|
||||
"Remove Package File:\n"
|
||||
"Deletes the last entry from the list\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.cbforceupdate.caption
|
||||
msgid "Force Update"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.cbforceupdate.hint
|
||||
msgid ""
|
||||
"Force Update check box:\n"
|
||||
"If this is checked the OPM user will be notified\n"
|
||||
"of your update. Only check this if the update is important.\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.cmd_close.caption
|
||||
msgid "&Close"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.cmd_save.caption
|
||||
msgid "&Save"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.cmd_save.hint
|
||||
msgid ""
|
||||
"Save the current configuration to disk\n"
|
||||
"as a JSON update file\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.editdownloadurl.hint
|
||||
msgid ""
|
||||
"Download URL:\n"
|
||||
"Include the FULL url needed to download the package Zip file\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"This is just the filename (not including the path)\n"
|
||||
"of your update zip. Type, or click the [...]\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.filemenu.caption
|
||||
msgid "File"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.fileopen1.caption
|
||||
msgid "&Open ..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.fileopen1.hint
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.filesaveas1.caption
|
||||
msgid "&Save As ..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.filesaveas1.hint
|
||||
msgid "Save As"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.lbldownloadurl.caption
|
||||
msgid "Download URL:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.lblname.caption
|
||||
msgid "Update Zip Name:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.lblpackagefiles.caption
|
||||
msgid "Package Files:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.loaditem.caption
|
||||
msgid "Load..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_filenew.caption
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_filesave.caption
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_help.caption
|
||||
msgid "&Help"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_helpabout.caption
|
||||
msgid "About.."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_helpdisablewarnings.caption
|
||||
msgid "Disable warnings"
|
||||
msgstr "Desactivar Advertencias"
|
||||
|
||||
#: tfrmmain.mnu_helpshowhints.caption
|
||||
msgid "Show Popup Hints"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_lang.caption
|
||||
msgid "Languages.."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_lang_en.caption
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnu_lang_es.caption
|
||||
msgid "Español"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.saveasitem.caption
|
||||
msgid "Save As..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.sb_editname.caption
|
||||
msgid "..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.sb_editname.hint
|
||||
msgid ""
|
||||
"Update Zip Name:\n"
|
||||
"Click this to browse your system to find\n"
|
||||
" an existing Update Zip\n"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.spd_checkurl.caption
|
||||
msgid "Check URL"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.spd_checkurl.hint
|
||||
msgid "Attempting to Open URL"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.stringpackagefiles.hint
|
||||
msgid ""
|
||||
"Package Files:\n"
|
||||
"[Add]: to make a new entry\n"
|
||||
"[Remove]: Remove last entry\n"
|
||||
"lpk filename: i.e. mycontrol.lpk\n"
|
||||
"Version: The FULL version (i.e. not 1.0 but 1.0.0.0)\n"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsabout
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rscompiledwith2
|
||||
msgid "Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s - %s platform%s%s"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsdownloadurld
|
||||
msgid "- Download URL does not contain the zipfile name"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsdownloadurli
|
||||
msgid "- Download URL is too short or missing"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsdownloadurli2
|
||||
msgid "- Download URL is incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsdownloadurls
|
||||
msgid "- Download URL should start with \"http\""
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsfilemaybeuns
|
||||
msgid "JSON may be unsaved. Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsfixthentryag
|
||||
msgid "Fix, then try again."
|
||||
msgstr ""
|
||||
|
||||
#: umain.rshelpandinfor
|
||||
msgid "Help and Information"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rshttpwwwupdat
|
||||
msgid "http://www.updatesite.com/myupdate/mypackagename.zip"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rslanguagechan
|
||||
msgid "Language changed to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#: umain.rslpkfilename
|
||||
msgid "lpk FileName"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsmypackagenam
|
||||
msgid "mypackagename.zip"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsoneofthereq1
|
||||
msgid "One of the required fields is missing or wrong."
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsoneofthereqn
|
||||
msgid "One or more of the required fields are missing or wrong."
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsoverwrite
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rssavedok
|
||||
msgid "Saved OK"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rssaveunsucces
|
||||
msgid "Save unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rssorrycopyope
|
||||
msgid "Sorry - copy operation was unsuccessful"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rssorrythislan
|
||||
msgid "Sorry, this language is unavailable at this time."
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsswassuccessf
|
||||
msgid "%s was successfully copied to the %s folder"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsthelpkentryd
|
||||
msgid "The .lpk entry #%d is missing the .lpk extension"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsthelpkentryd2
|
||||
msgid "The .lpk entry #%d is is absent"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rstherearenolp
|
||||
msgid "- There are no .lpk files in the list yet"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsthisoptionsh
|
||||
msgid "This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsturnhintsoff
|
||||
msgid "(You can toggle these hints on/off in the Help menu)"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsupdate
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsupdatezipnam
|
||||
msgid "- Update zip name is too short or missing"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsupdatezipnam2
|
||||
msgid "- Update zip name missing extension \".zip\""
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsversion0000
|
||||
msgid "Version (n.n.n.n)"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsversionentry
|
||||
msgid "Version Entry #%d is absent"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsversionentry2
|
||||
msgid "Version entry #%d needs to be of the form n.n.n.n"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rswouldyoulike
|
||||
msgid "Would you like to copy %s to the %s folder?"
|
||||
msgstr ""
|
||||
|
||||
#: umain.rsyoumayneedto
|
||||
msgid "(You may need to restart the app to see the change)"
|
||||
msgstr ""
|
||||
|
50
applications/json_packager/ugenericcollection.pas
Normal file
50
applications/json_packager/ugenericcollection.pas
Normal file
@ -0,0 +1,50 @@
|
||||
unit ugenericcollection;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
type
|
||||
|
||||
{ TGenericCollection }
|
||||
|
||||
generic TGenericCollection<T> = class(TCollection)
|
||||
private
|
||||
function GetItems(Index: integer): T;
|
||||
procedure SetItems(Index: integer; AValue: T);
|
||||
public
|
||||
constructor Create;
|
||||
public
|
||||
function Add: T;
|
||||
public
|
||||
property Items[Index: integer]: T read GetItems write SetItems; default;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TGenericCollection }
|
||||
|
||||
function TGenericCollection.GetItems(Index: integer): T;
|
||||
begin
|
||||
Result := T(inherited Items[Index]);
|
||||
end;
|
||||
|
||||
procedure TGenericCollection.SetItems(Index: integer; AValue: T);
|
||||
begin
|
||||
Items[Index].Assign(AValue);
|
||||
end;
|
||||
|
||||
constructor TGenericCollection.Create;
|
||||
begin
|
||||
inherited Create(T);
|
||||
end;
|
||||
|
||||
function TGenericCollection.Add: T;
|
||||
begin
|
||||
Result := T(inherited Add);
|
||||
end;
|
||||
|
||||
end.
|
284
applications/json_packager/umain.lfm
Normal file
284
applications/json_packager/umain.lfm
Normal file
@ -0,0 +1,284 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 526
|
||||
Height = 420
|
||||
Top = 226
|
||||
Width = 320
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsSingle
|
||||
ClientHeight = 400
|
||||
ClientWidth = 320
|
||||
DefaultMonitor = dmPrimary
|
||||
Menu = MainMenu1
|
||||
OnClick = mnu_fileSaveClick
|
||||
OnClose = FormClose
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '1.7'
|
||||
object lblName: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 8
|
||||
Width = 96
|
||||
Caption = 'Update Zip Name:'
|
||||
ParentColor = False
|
||||
end
|
||||
object editName: TEdit
|
||||
Left = 8
|
||||
Height = 23
|
||||
Hint = 'Update Zip Name:'#13#10'This is just the filename (not including the path)'#13#10'of your update zip. Type, or click the [...]'
|
||||
Top = 31
|
||||
Width = 264
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Color = clWindow
|
||||
TabOrder = 0
|
||||
end
|
||||
object cbForceUpdate: TCheckBox
|
||||
Left = 8
|
||||
Height = 19
|
||||
Hint = 'Force Update check box:'#13#10'If this is checked the OPM user will be notified'#13#10'of your update. Only check this if the update is important.'
|
||||
Top = 72
|
||||
Width = 90
|
||||
Caption = 'Force Update'
|
||||
Color = clWindow
|
||||
OnChange = cbForceUpdateChange
|
||||
OnMouseUp = cbForceUpdateMouseUp
|
||||
ParentColor = False
|
||||
TabOrder = 1
|
||||
end
|
||||
object lblDownloadURL: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 104
|
||||
Width = 81
|
||||
Caption = 'Download URL:'
|
||||
ParentColor = False
|
||||
end
|
||||
object editDownloadURL: TEdit
|
||||
Left = 8
|
||||
Height = 28
|
||||
Hint = 'Download URL:'#13#10'Include the FULL url needed to download the package Zip file'
|
||||
Top = 128
|
||||
Width = 304
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = False
|
||||
Color = clWindow
|
||||
TabOrder = 2
|
||||
end
|
||||
object lblPackageFiles: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 163
|
||||
Width = 73
|
||||
Caption = 'Package Files:'
|
||||
ParentColor = False
|
||||
end
|
||||
object stringPackageFiles: TStringGrid
|
||||
Left = 8
|
||||
Height = 144
|
||||
Hint = 'Package Files:'#13#10'[Add]: to make a new entry'#13#10'[Remove]: Remove last entry'#13#10'lpk filename: i.e. mycontrol.lpk'#13#10'Version: The FULL version (i.e. not 1.0 but 1.0.0.0)'
|
||||
Top = 192
|
||||
Width = 304
|
||||
AutoFillColumns = True
|
||||
ColCount = 2
|
||||
Columns = <
|
||||
item
|
||||
Title.Caption = ''
|
||||
Width = 150
|
||||
end
|
||||
item
|
||||
Title.Caption = ''
|
||||
Width = 150
|
||||
end>
|
||||
FixedCols = 0
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goThumbTracking, goSmoothScroll]
|
||||
RowCount = 1
|
||||
TabOrder = 3
|
||||
TitleStyle = tsNative
|
||||
ColWidths = (
|
||||
150
|
||||
150
|
||||
)
|
||||
end
|
||||
object btnAdd: TButton
|
||||
Left = 160
|
||||
Height = 25
|
||||
Hint = 'Add Package File:'#13#10'The update zip can contain more than one lpk file'#13#10'deployed to the same place.'
|
||||
Top = 163
|
||||
Width = 75
|
||||
Caption = 'Add'
|
||||
OnClick = btnAddClick
|
||||
TabOrder = 4
|
||||
end
|
||||
object btnRemove: TButton
|
||||
Left = 237
|
||||
Height = 25
|
||||
Hint = 'Remove Package File:'#13#10'Deletes the last entry from the list'
|
||||
Top = 163
|
||||
Width = 75
|
||||
Caption = 'Remove'
|
||||
OnClick = btnRemoveClick
|
||||
TabOrder = 5
|
||||
end
|
||||
object cmd_Close: TBitBtn
|
||||
Left = 237
|
||||
Height = 30
|
||||
Top = 352
|
||||
Width = 75
|
||||
Cancel = True
|
||||
Caption = '&Close'
|
||||
Kind = bkClose
|
||||
ModalResult = 11
|
||||
OnClick = cmd_CloseClick
|
||||
TabOrder = 6
|
||||
end
|
||||
object cmd_save: TBitBtn
|
||||
Left = 123
|
||||
Height = 30
|
||||
Hint = 'Save the current configuration to disk'#13#10'as a JSON update file'
|
||||
Top = 352
|
||||
Width = 75
|
||||
Caption = '&Save'
|
||||
Default = True
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
|
||||
00000000000000000000FFFFFF0046986FFF379064FF0B774240FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
|
||||
000000000000FFFFFF0054A07AFF78BCA1FF7DB99EFF368F63FF0B774240FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF
|
||||
FF00FFFFFF0054A07AFF7BBEA4FF39A681FF55B191FF7AB698FF399166FF0B77
|
||||
4240FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0054A0
|
||||
7A0054A07AFF7CC0A6FF3CA985FF76BDA1FF7FBBA0FF4FB592FF7BBEA2FF54A0
|
||||
7AFF0B77424054A07A0054A07A00FFFFFF00FFFFFF00FFFFFF0054A07A0054A0
|
||||
7AFF7DC1A7FF4DB391FF7FBB9FFF4D9C75FF3E946AFF7BC5A9FF40B18BFF7BBE
|
||||
A2FF54A07AFF0B77424054A07A0054A07A00FFFFFF00FFFFFF0054A07AFF7FC3
|
||||
A8FF5FBB9BFF7FBBA0FF3A9166FF0B7742600B7742404D9C75FF7BC5A9FF4EBC
|
||||
97FF7BBEA2FF54A07AFF0B7742400B77421054A07A00FFFFFF000B7742303A91
|
||||
66FC7FBBA0FF3A9166FC0B77423000000000000000000B77426054A07AFF7BC5
|
||||
A9FF4EBE99FF5CC2A0FF54A07AFF0B77423F0B77421054A07A00000000000B77
|
||||
42203A9166F60B774220000000000000000000000000FFFFFF000B77424054A0
|
||||
7AFF7CCAAEFF52C39DFF81BDA2FF54A07AFF0B77423F54A07A00000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000B77
|
||||
424054A07AFF6DC9A8FF57C7A2FF7BCCAFFF54A07AFF0B774239000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000FFFF
|
||||
FF000B77424C54A07AFF7BCCAFFF81CBAFFF54A07AFF0B77423F000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000FFFF
|
||||
FF00FFFFFF000B77423D54A07AFF54A07AFF0B774247FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF000B77423F0B77423FFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
OnClick = mnu_fileSaveClick
|
||||
TabOrder = 7
|
||||
end
|
||||
object sb_editName: TSpeedButton
|
||||
Left = 280
|
||||
Height = 22
|
||||
Hint = 'Update Zip Name:'#13#10'Click this to browse your system to find'#13#10' an existing Update Zip'
|
||||
Top = 31
|
||||
Width = 24
|
||||
Caption = '...'
|
||||
OnClick = sb_editNameClick
|
||||
end
|
||||
object spd_CheckURL: TSpeedButton
|
||||
Left = 104
|
||||
Height = 19
|
||||
Hint = 'Attempting to Open URL'
|
||||
Top = 102
|
||||
Width = 61
|
||||
AutoSize = True
|
||||
Caption = 'Check URL'
|
||||
OnClick = spd_CheckURLClick
|
||||
end
|
||||
object MainMenu1: TMainMenu
|
||||
Left = 200
|
||||
object FileMenu: TMenuItem
|
||||
Caption = 'File'
|
||||
object mnu_fileNew: TMenuItem
|
||||
Caption = 'New'
|
||||
OnClick = mnu_fileNewClick
|
||||
end
|
||||
object LoadItem: TMenuItem
|
||||
Caption = 'Load...'
|
||||
OnClick = LoadItemClick
|
||||
end
|
||||
object mnu_fileSave: TMenuItem
|
||||
Caption = 'Save'
|
||||
OnClick = mnu_fileSaveClick
|
||||
end
|
||||
object SaveAsItem: TMenuItem
|
||||
Caption = 'Save As...'
|
||||
OnClick = SaveAsItemClick
|
||||
end
|
||||
end
|
||||
object mnu_help: TMenuItem
|
||||
Caption = '&Help'
|
||||
object mnu_helpShowHints: TMenuItem
|
||||
AutoCheck = True
|
||||
Caption = 'Show Popup Hints'
|
||||
Checked = True
|
||||
GroupIndex = 1
|
||||
OnClick = mnu_helpShowHintsClick
|
||||
end
|
||||
object mnu_helpDisableWarnings: TMenuItem
|
||||
AutoCheck = True
|
||||
Caption = 'Disable warnings'
|
||||
OnClick = mnu_helpDisableWarningsClick
|
||||
end
|
||||
object mnu_lang: TMenuItem
|
||||
Caption = 'Languages..'
|
||||
object mnu_lang_en: TMenuItem
|
||||
Caption = 'English'
|
||||
GroupIndex = 2
|
||||
RadioItem = True
|
||||
OnClick = mnu_lang_enClick
|
||||
end
|
||||
object mnu_lang_es: TMenuItem
|
||||
Caption = 'Español'
|
||||
GroupIndex = 2
|
||||
RadioItem = True
|
||||
OnClick = mnu_lang_esClick
|
||||
end
|
||||
end
|
||||
object mnu_helpAbout: TMenuItem
|
||||
Caption = 'About..'
|
||||
OnClick = mnu_helpAboutClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object ActionList1: TActionList
|
||||
Left = 136
|
||||
object FileSaveAs1: TFileSaveAs
|
||||
Category = 'File'
|
||||
Caption = '&Save As ...'
|
||||
Dialog.Filter = 'JSON|*.json'
|
||||
Hint = 'Save As'
|
||||
end
|
||||
object FileOpen1: TFileOpen
|
||||
Category = 'File'
|
||||
Caption = '&Open ...'
|
||||
Dialog.Filter = 'JSON|*.json'
|
||||
Hint = 'Open'
|
||||
ShortCut = 16463
|
||||
end
|
||||
end
|
||||
object mypopup: TPopupNotifier
|
||||
Color = 14483455
|
||||
Icon.Data = {
|
||||
07544269746D617000000000
|
||||
}
|
||||
Text = 'Text'
|
||||
Title = 'Caption'
|
||||
Visible = False
|
||||
Left = 168
|
||||
end
|
||||
end
|
39
applications/json_packager/umain.lrj
Normal file
39
applications/json_packager/umain.lrj
Normal file
@ -0,0 +1,39 @@
|
||||
{"version":1,"strings":[
|
||||
{"hash":183952426,"name":"tfrmmain.lblname.caption","sourcebytes":[85,112,100,97,116,101,32,90,105,112,32,78,97,109,101,58],"value":"Update Zip Name:"},
|
||||
{"hash":260482813,"name":"tfrmmain.editname.hint","sourcebytes":[85,112,100,97,116,101,32,90,105,112,32,78,97,109,101,58,13,10,84,104,105,115,32,105,115,32,106,117,115,116,32,116,104,101,32,102,105,108,101,110,97,109,101,32,40,110,111,116,32,105,110,99,108,117,100,105,110,103,32,116,104,101,32,112,97,116,104,41,13,10,111,102,32,121,111,117,114,32,117,112,100,97,116,101,32,122,105,112,46,32,84,121,112,101,44,32,111,114,32,99,108,105,99,107,32,116,104,101,32,91,46,46,46,93],"value":"Update Zip Name:\r\nThis is just the filename (not including the path)\r\nof your update zip. Type, or click the [...]"},
|
||||
{"hash":190949342,"name":"tfrmmain.cbforceupdate.hint","sourcebytes":[70,111,114,99,101,32,85,112,100,97,116,101,32,99,104,101,99,107,32,98,111,120,58,13,10,73,102,32,116,104,105,115,32,105,115,32,99,104,101,99,107,101,100,32,116,104,101,32,79,80,77,32,117,115,101,114,32,119,105,108,108,32,98,101,32,110,111,116,105,102,105,101,100,13,10,111,102,32,121,111,117,114,32,117,112,100,97,116,101,46,32,32,79,110,108,121,32,99,104,101,99,107,32,116,104,105,115,32,105,102,32,116,104,101,32,117,112,100,97,116,101,32,105,115,32,105,109,112,111,114,116,97,110,116,46],"value":"Force Update check box:\r\nIf this is checked the OPM user will be notified\r\nof your update. Only check this if the update is important."},
|
||||
{"hash":17834453,"name":"tfrmmain.cbforceupdate.caption","sourcebytes":[70,111,114,99,101,32,85,112,100,97,116,101],"value":"Force Update"},
|
||||
{"hash":202110442,"name":"tfrmmain.lbldownloadurl.caption","sourcebytes":[68,111,119,110,108,111,97,100,32,85,82,76,58],"value":"Download URL:"},
|
||||
{"hash":265021141,"name":"tfrmmain.editdownloadurl.hint","sourcebytes":[68,111,119,110,108,111,97,100,32,85,82,76,58,13,10,73,110,99,108,117,100,101,32,116,104,101,32,70,85,76,76,32,117,114,108,32,110,101,101,100,101,100,32,116,111,32,100,111,119,110,108,111,97,100,32,116,104,101,32,112,97,99,107,97,103,101,32,90,105,112,32,102,105,108,101],"value":"Download URL:\r\nInclude the FULL url needed to download the package Zip file"},
|
||||
{"hash":57627770,"name":"tfrmmain.lblpackagefiles.caption","sourcebytes":[80,97,99,107,97,103,101,32,70,105,108,101,115,58],"value":"Package Files:"},
|
||||
{"hash":168058793,"name":"tfrmmain.stringpackagefiles.hint","sourcebytes":[80,97,99,107,97,103,101,32,70,105,108,101,115,58,13,10,91,65,100,100,93,58,32,32,116,111,32,109,97,107,101,32,97,32,110,101,119,32,101,110,116,114,121,13,10,91,82,101,109,111,118,101,93,58,32,82,101,109,111,118,101,32,108,97,115,116,32,101,110,116,114,121,13,10,108,112,107,32,102,105,108,101,110,97,109,101,58,32,105,46,101,46,32,109,121,99,111,110,116,114,111,108,46,108,112,107,13,10,86,101,114,115,105,111,110,58,32,84,104,101,32,70,85,76,76,32,118,101,114,115,105,111,110,32,40,105,46,101,46,32,110,111,116,32,49,46,48,32,98,117,116,32,49,46,48,46,48,46,48,41],"value":"Package Files:\r\n[Add]: to make a new entry\r\n[Remove]: Remove last entry\r\nlpk filename: i.e. mycontrol.lpk\r\nVersion: The FULL version (i.e. not 1.0 but 1.0.0.0)"},
|
||||
{"hash":4294967295,"name":"tfrmmain.stringpackagefiles.columns[0].title.caption","sourcebytes":[],"value":""},
|
||||
{"hash":4294967295,"name":"tfrmmain.stringpackagefiles.columns[1].title.caption","sourcebytes":[],"value":""},
|
||||
{"hash":61051198,"name":"tfrmmain.btnadd.hint","sourcebytes":[65,100,100,32,80,97,99,107,97,103,101,32,70,105,108,101,58,13,10,84,104,101,32,117,112,100,97,116,101,32,122,105,112,32,99,97,110,32,99,111,110,116,97,105,110,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,108,112,107,32,102,105,108,101,13,10,100,101,112,108,111,121,101,100,32,116,111,32,116,104,101,32,115,97,109,101,32,112,108,97,99,101,46],"value":"Add Package File:\r\nThe update zip can contain more than one lpk file\r\ndeployed to the same place."},
|
||||
{"hash":18340,"name":"tfrmmain.btnadd.caption","sourcebytes":[65,100,100],"value":"Add"},
|
||||
{"hash":3931908,"name":"tfrmmain.btnremove.hint","sourcebytes":[82,101,109,111,118,101,32,80,97,99,107,97,103,101,32,70,105,108,101,58,13,10,68,101,108,101,116,101,115,32,116,104,101,32,108,97,115,116,32,101,110,116,114,121,32,102,114,111,109,32,116,104,101,32,108,105,115,116],"value":"Remove Package File:\r\nDeletes the last entry from the list"},
|
||||
{"hash":93079237,"name":"tfrmmain.btnremove.caption","sourcebytes":[82,101,109,111,118,101],"value":"Remove"},
|
||||
{"hash":44709525,"name":"tfrmmain.cmd_close.caption","sourcebytes":[38,67,108,111,115,101],"value":"&Close"},
|
||||
{"hash":29947669,"name":"tfrmmain.cmd_save.hint","sourcebytes":[83,97,118,101,32,116,104,101,32,99,117,114,114,101,110,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,116,111,32,100,105,115,107,13,10,97,115,32,97,32,74,83,79,78,32,117,112,100,97,116,101,32,102,105,108,101],"value":"Save the current configuration to disk\r\nas a JSON update file"},
|
||||
{"hash":2857157,"name":"tfrmmain.cmd_save.caption","sourcebytes":[38,83,97,118,101],"value":"&Save"},
|
||||
{"hash":244237216,"name":"tfrmmain.sb_editname.hint","sourcebytes":[85,112,100,97,116,101,32,90,105,112,32,78,97,109,101,58,13,10,67,108,105,99,107,32,116,104,105,115,32,116,111,32,98,114,111,119,115,101,32,121,111,117,114,32,115,121,115,116,101,109,32,116,111,32,102,105,110,100,13,10,32,97,110,32,101,120,105,115,116,105,110,103,32,85,112,100,97,116,101,32,90,105,112],"value":"Update Zip Name:\r\nClick this to browse your system to find\r\n an existing Update Zip"},
|
||||
{"hash":12558,"name":"tfrmmain.sb_editname.caption","sourcebytes":[46,46,46],"value":"..."},
|
||||
{"hash":60451052,"name":"tfrmmain.spd_checkurl.hint","sourcebytes":[65,116,116,101,109,112,116,105,110,103,32,116,111,32,79,112,101,110,32,85,82,76],"value":"Attempting to Open URL"},
|
||||
{"hash":194843532,"name":"tfrmmain.spd_checkurl.caption","sourcebytes":[67,104,101,99,107,32,85,82,76],"value":"Check URL"},
|
||||
{"hash":315429,"name":"tfrmmain.filemenu.caption","sourcebytes":[70,105,108,101],"value":"File"},
|
||||
{"hash":21703,"name":"tfrmmain.mnu_filenew.caption","sourcebytes":[78,101,119],"value":"New"},
|
||||
{"hash":56062302,"name":"tfrmmain.loaditem.caption","sourcebytes":[76,111,97,100,46,46,46],"value":"Load..."},
|
||||
{"hash":366789,"name":"tfrmmain.mnu_filesave.caption","sourcebytes":[83,97,118,101],"value":"Save"},
|
||||
{"hash":122542542,"name":"tfrmmain.saveasitem.caption","sourcebytes":[83,97,118,101,32,65,115,46,46,46],"value":"Save As..."},
|
||||
{"hash":2812976,"name":"tfrmmain.mnu_help.caption","sourcebytes":[38,72,101,108,112],"value":"&Help"},
|
||||
{"hash":186260755,"name":"tfrmmain.mnu_helpshowhints.caption","sourcebytes":[83,104,111,119,32,80,111,112,117,112,32,72,105,110,116,115],"value":"Show Popup Hints"},
|
||||
{"hash":253903779,"name":"tfrmmain.mnu_helpdisablewarnings.caption","sourcebytes":[68,105,115,97,98,108,101,32,119,97,114,110,105,110,103,115],"value":"Disable warnings"},
|
||||
{"hash":187646702,"name":"tfrmmain.mnu_lang.caption","sourcebytes":[76,97,110,103,117,97,103,101,115,46,46],"value":"Languages.."},
|
||||
{"hash":206450904,"name":"tfrmmain.mnu_lang_en.caption","sourcebytes":[69,110,103,108,105,115,104],"value":"English"},
|
||||
{"hash":174974108,"name":"tfrmmain.mnu_lang_es.caption","sourcebytes":[69,115,112,97,195,177,111,108],"value":"Espa\u00F1ol"},
|
||||
{"hash":127321934,"name":"tfrmmain.mnu_helpabout.caption","sourcebytes":[65,98,111,117,116,46,46],"value":"About.."},
|
||||
{"hash":104643966,"name":"tfrmmain.filesaveas1.caption","sourcebytes":[38,83,97,118,101,32,65,115,32,46,46,46],"value":"&Save As ..."},
|
||||
{"hash":160199891,"name":"tfrmmain.filesaveas1.hint","sourcebytes":[83,97,118,101,32,65,115],"value":"Save As"},
|
||||
{"hash":113253486,"name":"tfrmmain.fileopen1.caption","sourcebytes":[38,79,112,101,110,32,46,46,46],"value":"&Open ..."},
|
||||
{"hash":353982,"name":"tfrmmain.fileopen1.hint","sourcebytes":[79,112,101,110],"value":"Open"}
|
||||
]}
|
800
applications/json_packager/umain.pas
Normal file
800
applications/json_packager/umain.pas
Normal file
@ -0,0 +1,800 @@
|
||||
unit umain;
|
||||
|
||||
{ OnlinePackageManager Update JSON Editor
|
||||
|
||||
Copyright (C)2016 usernames lainz, minesadorada @ http://forum.lazarus.freepascal.org/index.php
|
||||
|
||||
This source is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This code 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 General Public License for more
|
||||
details.
|
||||
|
||||
A copy of the GNU General Public License is available on the World Wide Web
|
||||
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
|
||||
to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA.
|
||||
|
||||
Version History
|
||||
===============
|
||||
0.0.0.0 Original code by lainz
|
||||
..to 0.1.6.0 Refactored and updated by minesadorada
|
||||
0.1.7.0: Bugfix by lainz
|
||||
0.1.8.0: Config file change by minesadorada
|
||||
}
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
{DefaultTranslator}
|
||||
uses
|
||||
Classes, Forms, Controls, StdCtrls, Menus, ActnList, StdActns, Grids,
|
||||
Graphics, Buttons, fileutil, LazFileUtils, fileinfo, ugenericcollection, fpjsonrtti,
|
||||
Dialogs, StrUtils, LCLTranslator, PopupNotifier, SysUtils, inifiles,
|
||||
lclintf, lclVersion;
|
||||
|
||||
type
|
||||
|
||||
{ TPackage }
|
||||
|
||||
{ TPackageFiles }
|
||||
|
||||
TPackageFiles = class(TCollectionItem)
|
||||
private
|
||||
FName: string;
|
||||
FVersion: string;
|
||||
published
|
||||
property Name: string read FName write FName;
|
||||
property Version: string read FVersion write FVersion;
|
||||
end;
|
||||
|
||||
TPackageFilesList = specialize TGenericCollection<TPackageFiles>;
|
||||
|
||||
{ TPackageData }
|
||||
|
||||
TPackageData = class(TPersistent)
|
||||
private
|
||||
FDownloadURL: string;
|
||||
FForceUpdate: boolean;
|
||||
FName: string;
|
||||
public
|
||||
constructor Create;
|
||||
published
|
||||
property Name: string read FName write FName;
|
||||
property ForceUpdate: boolean read FForceUpdate write FForceUpdate;
|
||||
property DownloadURL: string read FDownloadURL write FDownloadURL;
|
||||
end;
|
||||
|
||||
TPackage = class(TPersistent)
|
||||
private
|
||||
FPackage: TPackageData;
|
||||
FPackageFiles: TPackageFilesList;
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
procedure LoadFromFile(AFileName: string);
|
||||
function SaveToFile(AFileName: string): boolean;
|
||||
published
|
||||
property Package: TPackageData read FPackage write FPackage;
|
||||
property PackageFiles: TPackageFilesList read FPackageFiles write FPackageFiles;
|
||||
end;
|
||||
|
||||
{ TfrmMain }
|
||||
|
||||
TfrmMain = class(TForm)
|
||||
ActionList1: TActionList;
|
||||
cmd_Close: TBitBtn;
|
||||
cmd_save: TBitBtn;
|
||||
btnAdd: TButton;
|
||||
btnRemove: TButton;
|
||||
cbForceUpdate: TCheckBox;
|
||||
editName: TEdit;
|
||||
editDownloadURL: TEdit;
|
||||
FileOpen1: TFileOpen;
|
||||
FileSaveAs1: TFileSaveAs;
|
||||
lblPackageFiles: TLabel;
|
||||
lblName: TLabel;
|
||||
lblDownloadURL: TLabel;
|
||||
MainMenu1: TMainMenu;
|
||||
FileMenu: TMenuItem;
|
||||
LoadItem: TMenuItem;
|
||||
mnu_fileNew: TMenuItem;
|
||||
mnu_helpDisableWarnings: TMenuItem;
|
||||
mnu_lang_es: TMenuItem;
|
||||
mnu_lang_en: TMenuItem;
|
||||
mnu_lang: TMenuItem;
|
||||
mnu_helpAbout: TMenuItem;
|
||||
mnu_helpShowHints: TMenuItem;
|
||||
mnu_help: TMenuItem;
|
||||
mnu_fileSave: TMenuItem;
|
||||
mypopup: TPopupNotifier;
|
||||
SaveAsItem: TMenuItem;
|
||||
sb_editName: TSpeedButton;
|
||||
spd_CheckURL: TSpeedButton;
|
||||
stringPackageFiles: TStringGrid;
|
||||
procedure btnAddClick(Sender: TObject);
|
||||
procedure btnRemoveClick(Sender: TObject);
|
||||
procedure cbForceUpdateChange(Sender: TObject);
|
||||
procedure cbForceUpdateMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
procedure cmd_CloseClick(Sender: TObject);
|
||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure LoadItemClick(Sender: TObject);
|
||||
procedure mnu_fileNewClick(Sender: TObject);
|
||||
procedure mnu_fileSaveClick(Sender: TObject);
|
||||
procedure mnu_helpAboutClick(Sender: TObject);
|
||||
procedure mnu_helpDisableWarningsClick(Sender: TObject);
|
||||
procedure mnu_helpShowHintsClick(Sender: TObject);
|
||||
procedure mnu_lang_enClick(Sender: TObject);
|
||||
procedure mnu_lang_esClick(Sender: TObject);
|
||||
procedure SaveAsItemClick(Sender: TObject);
|
||||
procedure sb_editNameClick(Sender: TObject);
|
||||
procedure spd_CheckURLClick(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
JSONPackage: TPackage;
|
||||
bForceSaveAs, bShowPopupHints, bDisableWarnings, bDirty,bIsVirgin: boolean;
|
||||
sJSONFilePath: string;
|
||||
sUpdateDirectory, sZipDirectory: string;
|
||||
CFG: TIniFile;
|
||||
slErrorList: TStrings;
|
||||
function ValidationFailed: boolean;
|
||||
procedure CtrlShowPopup(Sender: TObject);
|
||||
procedure CtrlHidePopup(Sender: TObject);
|
||||
procedure CtrlSetUpPopupHandlers;
|
||||
procedure CtrlMakeDirty(Sender: TObject);
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
resourcestring
|
||||
rsOneOfTheReq1 =
|
||||
'One of the required fields is missing or wrong.';
|
||||
rsOneOfTheReqn =
|
||||
'One or more of the required fields are missing or wrong.';
|
||||
rsSavedOK = 'Saved OK';
|
||||
rsSaveUnsucces = 'Save unsuccessful';
|
||||
rsOverwrite = 'Overwrite';
|
||||
rsTurnHintsOff = '(You can toggle these hints on/off in the Help menu)';
|
||||
rsHelpAndInfor = 'Help and Information';
|
||||
rsAbout = 'About';
|
||||
rsUpdate = 'Update';
|
||||
rsFileMayBeUns = 'JSON may be unsaved. Are you sure you want to quit?';
|
||||
rsMypackagenam = 'mypackagename.zip';
|
||||
rsHttpWwwUpdat = 'http://www.updatesite.com/myupdate/mypackagename.zip';
|
||||
rsLpkFileName = 'lpk FileName';
|
||||
rsVersion0000 = 'Version (n.n.n.n)';
|
||||
rsFixThenTryAg = 'Fix, then try again.';
|
||||
rsUpdateZipNam = '- Update zip name is too short or missing';
|
||||
rsDownloadURLI = '- Download URL is too short or missing';
|
||||
rsThereAreNoLp = '- There are no .lpk files in the list yet';
|
||||
rsUpdateZipNam2 = '- Update zip name missing extension ".zip"';
|
||||
rsDownloadURLI2 = '- Download URL is incomplete';
|
||||
rsDownloadURLS = '- Download URL should start with "http"';
|
||||
rsDownloadURLD = '- Download URL does not contain the zipfile name';
|
||||
rsWouldYouLike = 'Would you like to copy %s to the %s folder?';
|
||||
rsSWasSuccessf = '%s was successfully copied to the %s folder';
|
||||
rsSorryCopyOpe = 'Sorry - copy operation was unsuccessful';
|
||||
rsCompiledWith2 = 'Compiled with FPC V:%s and Lazarus V:%d.%d%s for the %s -' +
|
||||
' %s platform%s%s';
|
||||
rsVersionEntry = 'Version Entry #%d is absent';
|
||||
rsVersionEntry2 = 'Version entry #%d needs to be of the form n.n.n.n';
|
||||
rsTheLpkEntryD = 'The .lpk entry #%d is missing the .lpk extension';
|
||||
rsTheLpkEntryD2 = 'The .lpk entry #%d is is absent';
|
||||
rsThisOptionSh =
|
||||
'This option should only be used for crucial updates or bug-fixed packages. Are you OK with that?';
|
||||
rsLanguageChan = 'Language changed to "%s".';
|
||||
rsSorryThisLan = 'Sorry, this language is unavailable at this time.';
|
||||
rsYouMayNeedTo = '(You may need to restart the app to see the change)';
|
||||
|
||||
{ TPackageData }
|
||||
|
||||
constructor TPackageData.Create;
|
||||
begin
|
||||
FName := '';
|
||||
FForceUpdate := False;
|
||||
FDownloadURL := '';
|
||||
end;
|
||||
|
||||
{ TfrmMain }
|
||||
procedure TfrmMain.CtrlMakeDirty(Sender: TObject);
|
||||
begin
|
||||
bDirty := True;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.CtrlHidePopup(Sender: TObject);
|
||||
// Get rid of highlighting
|
||||
begin
|
||||
mypopup.Hide;
|
||||
slErrorList.Clear;
|
||||
if Sender.ClassName <> 'TLabel' then
|
||||
TControl(Sender).Color := clWindow;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.CtrlShowPopup(Sender: TObject);
|
||||
// Use the control's Hint property to populate the popup text
|
||||
begin
|
||||
if not bShowPopupHints then
|
||||
exit;
|
||||
MyPopup.Text := '';
|
||||
MyPopup.Title := '';
|
||||
If (Sender.InheritsFrom(TControl) = FALSE) then exit;
|
||||
|
||||
myPopup.Text := TControl(Sender).Hint;
|
||||
if (MyPopup.Text <> '') then
|
||||
begin
|
||||
mypopup.Title := rsHelpAndInfor;
|
||||
mypopup.Text := mypopup.Text;
|
||||
if bIsVirgin then mypopup.Text:=mypopup.Text + LineEnding + rsTurnHintsOff;
|
||||
mypopup.showatpos(Mouse.CursorPos.X, Mouse.CursorPos.Y);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.CtrlSetUpPopupHandlers;
|
||||
// Use different handlers for some controls
|
||||
var
|
||||
iCount: integer;
|
||||
begin
|
||||
with frmMain do
|
||||
begin
|
||||
for iCount := 0 to Pred(ControlCount) do
|
||||
begin
|
||||
If (Controls[iCount].InheritsFrom(TControl) = FALSE) then continue;
|
||||
if (Controls[iCount] is TEdit) then
|
||||
begin
|
||||
TEdit(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TEdit(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
TEdit(Controls[iCount]).OnClick := @CtrlHidePopup;
|
||||
TEdit(Controls[iCount]).OnEditingDone := @CtrlMakeDirty;
|
||||
end;
|
||||
if (Controls[iCount] is TCheckBox) then
|
||||
begin
|
||||
TCheckBox(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TCheckBox(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
TCheckBox(Controls[iCount]).OnClick := @CtrlHidePopup;
|
||||
TCheckBox(Controls[iCount]).OnEditingDone := @CtrlMakeDirty;
|
||||
end;
|
||||
if (Controls[iCount] is TStringGrid) then
|
||||
begin
|
||||
TStringGrid(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TStringGrid(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
TStringGrid(Controls[iCount]).OnClick := @CtrlHidePopup;
|
||||
TStringGrid(Controls[iCount]).OnEditingDone := @CtrlMakeDirty;
|
||||
end;
|
||||
if (Controls[iCount] is TLabel) then
|
||||
begin
|
||||
TLabel(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TLabel(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
TLabel(Controls[iCount]).OnClick := @CtrlHidePopup;
|
||||
end;
|
||||
if (Controls[iCount] is TButton) then
|
||||
begin
|
||||
TButton(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TButton(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
end;
|
||||
if (Controls[iCount] is TSpeedButton) then
|
||||
begin
|
||||
TSpeedButton(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TSpeedButton(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
end;
|
||||
if (Controls[iCount] is TBitBtn) then
|
||||
begin
|
||||
TBitBtn(Controls[iCount]).OnMouseEnter := @CtrlShowPopup;
|
||||
TBitBtn(Controls[iCount]).OnMouseLeave := @CtrlHidePopup;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfrmMain.btnAddClick(Sender: TObject);
|
||||
begin
|
||||
stringPackageFiles.RowCount := stringPackageFiles.RowCount + 1;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnRemoveClick(Sender: TObject);
|
||||
begin
|
||||
if stringPackageFiles.RowCount > 1 then
|
||||
stringPackageFiles.RowCount := stringPackageFiles.RowCount - 1;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.cbForceUpdateChange(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmMain.cbForceUpdateMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
var
|
||||
s: string;
|
||||
begin
|
||||
if bDisableWarnings then
|
||||
exit;
|
||||
if cbForceUpdate.Checked then
|
||||
begin
|
||||
s := rsThisOptionSh;
|
||||
if MessageDlg(s, mtConfirmation, [mbOK, mbAbort], 0, mbAbort) = mrAbort then
|
||||
cbForceUpdate.Checked := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.cmd_CloseClick(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
begin
|
||||
CFG.WriteBool('Options', 'Virgin', False);
|
||||
CFG.WriteBool('Options', 'DiableWarnings', bDisableWarnings);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
begin
|
||||
CanClose := True;
|
||||
if bDisableWarnings = TRUE then
|
||||
exit;
|
||||
if bDirty = True then
|
||||
begin
|
||||
if MessageDlg(rsFileMayBeUns, mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrNo then
|
||||
CanClose := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
sLang,INIFilePath: string;
|
||||
|
||||
procedure CreateUniqueINI(aCount:Integer);
|
||||
// Recursively loop until correct INI found, or new one created
|
||||
begin
|
||||
INIFilePath:=GetAppConfigFile(False) + IntToStr(aCount);
|
||||
CFG := TIniFile.Create(INIFilePath);
|
||||
If CFG.ReadString('Options','AppPath',ProgramDirectory) <> ProgramDirectory then
|
||||
Begin
|
||||
CFG.Free; // Ditch the old one
|
||||
inc(aCount);
|
||||
CreateUniqueINI(aCount); // Make a new one
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
Self.AutoAdjustLayout(lapAutoAdjustForDPI, Self.DesignTimeDPI,
|
||||
Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, Self.DesignTimeDPI));
|
||||
// Enable AutoSize again to get correct Height
|
||||
editName.AutoSize := True;
|
||||
editDownloadURL.AutoSize := True;
|
||||
// Furniture
|
||||
Caption := Application.Title;
|
||||
Icon := Application.Icon;
|
||||
MyPopup.Icon := TPicture(Application.Icon);
|
||||
editname.Text := rsMypackagenam;
|
||||
editDownloadURL.Text := rsHttpWwwUpdat;
|
||||
stringPackageFiles.Columns[0].Title.Caption := rsLpkFileName;
|
||||
stringPackageFiles.Columns[1].Title.Caption := rsVersion0000;
|
||||
// Defaults
|
||||
bForceSaveAs := True;
|
||||
bShowPopupHints := True;
|
||||
slErrorList := TStringList.Create;
|
||||
// Encourage the user to maintain an updates folder
|
||||
sUpdateDirectory := ProgramDirectory + 'updates';
|
||||
if not FileExistsUTF8(sUpdateDirectory) then
|
||||
if not ForceDirectoriesUTF8(ProgramDirectory + 'updates') then
|
||||
sUpdateDirectory := ProgramDirectory;
|
||||
// Enable options persistence
|
||||
// If program location is different, create a new CFG file
|
||||
// Because each component's location might be different
|
||||
CreateUniqueINI(0);
|
||||
CFG.WriteString('Options','AppPath',ProgramDirectory);
|
||||
|
||||
// Pop-up hints (show on first run, then not again unless the user chooses)
|
||||
bIsVirgin:=CFG.ReadBool('Options', 'Virgin', True);
|
||||
bShowPopupHints := bIsVirgin;
|
||||
mnu_helpShowHints.Checked := bShowPopupHints;
|
||||
// Override here if the user has re-enabled them
|
||||
bShowPopupHints := CFG.ReadBool('Options', 'ShowPopupHints', bShowPopupHints);
|
||||
mnu_helpShowHints.Checked := bShowPopupHints;
|
||||
bDisableWarnings := CFG.ReadBool('Options', 'DiableWarnings', False);
|
||||
mnu_helpDisableWarnings.Checked := bDisableWarnings;
|
||||
CtrlSetUpPopupHandlers; // Set the Hint property of various controls to show a Popup
|
||||
// Language translation
|
||||
sLang := CFG.ReadString('Options', 'Language', 'en'); // First default is English
|
||||
SetDefaultLang(sLang, 'locale', True);
|
||||
// Add more translations here
|
||||
if sLang = 'en' then
|
||||
mnu_lang_en.Checked := True;
|
||||
if sLang = 'es' then
|
||||
mnu_lang_es.Checked := True;
|
||||
|
||||
bDirty := False; // No effect :(
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormShow(Sender: TObject);
|
||||
begin
|
||||
bDirty := False;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LoadItemClick(Sender: TObject);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
FileOpen1.Dialog.InitialDir :=
|
||||
CFG.ReadString('Options', 'LastLoadedJSONPath', sUpdateDirectory);
|
||||
FileOpen1.Dialog.Filter := 'JSON|*.json';
|
||||
if FileOpen1.Dialog.Execute then
|
||||
begin
|
||||
sJSONFilePath := FileOpen1.Dialog.Filename;
|
||||
CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath));
|
||||
JSONPackage := TPackage.Create;
|
||||
JSONPackage.LoadFromFile(FileOpen1.Dialog.FileName);
|
||||
|
||||
editName.Text := JSONPackage.Package.Name;
|
||||
editDownloadURL.Text := JSONPackage.Package.DownloadURL;
|
||||
cbForceUpdate.Checked := JSONPackage.Package.ForceUpdate;
|
||||
|
||||
stringPackageFiles.RowCount := JSONPackage.PackageFiles.Count + 1;
|
||||
for i := 0 to JSONPackage.PackageFiles.Count - 1 do
|
||||
begin
|
||||
stringPackageFiles.Cells[0, i + 1] := JSONPackage.PackageFiles.Items[i].Name;
|
||||
stringPackageFiles.Cells[1, i + 1] := JSONPackage.PackageFiles.Items[i].Version;
|
||||
end;
|
||||
|
||||
JSONPackage.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_fileNewClick(Sender: TObject);
|
||||
begin
|
||||
editname.Text := rsMypackagenam;
|
||||
editDownloadURL.Text := rsHttpWwwUpdat;
|
||||
cbForceUpdate.Checked:=False;
|
||||
stringPackageFiles.RowCount:=1;
|
||||
sJSONFilePath:='';
|
||||
sZipDirectory:='';
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_fileSaveClick(Sender: TObject);
|
||||
begin
|
||||
bForceSaveAs := False;
|
||||
SaveAsItem.Click;
|
||||
bForceSaveAs := True;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_helpAboutClick(Sender: TObject);
|
||||
var
|
||||
s: string;
|
||||
Quad: TVersionQuad;
|
||||
VInfo: TFileVersionInfo;
|
||||
EqualsPos: integer;
|
||||
begin
|
||||
s := Application.Title + LineEnding;
|
||||
if GetProgramVersion(Quad) then
|
||||
s += 'Version: ' + VersionQuadToStr(Quad) + LineEnding;
|
||||
Vinfo := TFileVersionInfo.Create(Application);
|
||||
try
|
||||
Vinfo.Filter.Add('LegalCopyright'); // Set In Project/Options/Version Info
|
||||
Vinfo.Filter.Add('FileDescription'); // Set In Project/Options/Version Info
|
||||
Vinfo.ReadFileInfo;
|
||||
if VInfo.VersionStrings.Count > 0 then
|
||||
begin
|
||||
EqualsPos := Pos('=', VInfo.VersionStrings[1]); // Copyright
|
||||
if (EqualsPos > 0) then
|
||||
s += RightStr(VInfo.VersionStrings[1], Length(VInfo.VersionStrings[1]) -
|
||||
EqualsPos) + LineEnding;
|
||||
end;
|
||||
s+=Format(rsCompiledWith2,
|
||||
[{$I %FPCVERSION%},lcl_major,lcl_minor,LineEnding,{$I %FPCTARGETCPU%},{$I %FPCTARGETOS%},LineEnding,LineEnding]);
|
||||
if VInfo.VersionStrings.Count > 1 then
|
||||
begin
|
||||
EqualsPos := Pos('=', VInfo.VersionStrings[0]); // File Deswcription
|
||||
if (EqualsPos > 0) then
|
||||
s += RightStr(VInfo.VersionStrings[0], Length(VInfo.VersionStrings[0]) -
|
||||
EqualsPos) + LineEnding;
|
||||
|
||||
end;
|
||||
finally
|
||||
Vinfo.Free;
|
||||
end;
|
||||
MessageDlg(rsAbout + ' ' + Application.Title, s, mtInformation, [mbOK], 0);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_helpDisableWarningsClick(Sender: TObject);
|
||||
begin
|
||||
bDisableWarnings := not bDisableWarnings;
|
||||
mnu_helpDisableWarnings.Checked := bDisableWarnings;
|
||||
CFG.WriteBool('Options', 'DiableWarnings', bDisableWarnings);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_helpShowHintsClick(Sender: TObject);
|
||||
begin
|
||||
bShowPopupHints := mnu_helpShowHints.Checked;
|
||||
CFG.WriteBool('Options', 'ShowPopupHints', bShowPopupHints);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_lang_enClick(Sender: TObject);
|
||||
begin
|
||||
SetDefaultLang('en', 'locale', True);
|
||||
if Length(GetDefaultLang) > 0 then
|
||||
begin
|
||||
ShowMessageFmt(rsLanguageChan, [GetDefaultLang]);
|
||||
CFG.WriteString('Options', 'Language', GetDefaultLang);
|
||||
mnu_lang_en.Checked := True;
|
||||
end
|
||||
else
|
||||
begin
|
||||
mnu_lang_en.Checked := False;
|
||||
ShowMessage(rsSorryThisLan + LineEnding + rsYouMayNeedTo);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.mnu_lang_esClick(Sender: TObject);
|
||||
begin
|
||||
SetDefaultLang('es', 'locale', True);
|
||||
if Length(GetDefaultLang) > 0 then
|
||||
begin
|
||||
ShowMessageFmt(rsLanguageChan, [GetDefaultLang]);
|
||||
CFG.WriteString('Options', 'Language', GetDefaultLang);
|
||||
mnu_lang_es.Checked := True;
|
||||
end
|
||||
else
|
||||
begin
|
||||
mnu_lang_es.Checked := False;
|
||||
ShowMessage(rsSorryThisLan);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrmMain.ValidationFailed: boolean;
|
||||
// Add checks as needed here
|
||||
var
|
||||
iCount: integer;
|
||||
Quad: TVersionQuad; // fileinfo unit
|
||||
begin
|
||||
Result := False;
|
||||
// Check Zipname and URL http:// length
|
||||
if (Length(editName.Text) < 5) then
|
||||
begin
|
||||
editName.Color := clYellow;
|
||||
slErrorList.Add(rsUpdateZipNam);
|
||||
Result := True;
|
||||
end;
|
||||
// URL implausable?
|
||||
if (Length(editDownloadURL.Text) < 10) then
|
||||
begin
|
||||
slErrorList.Add(rsDownloadURLI);
|
||||
editDownloadURL.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
// No lpk file?
|
||||
if (stringPackageFiles.RowCount = 1) then
|
||||
begin
|
||||
slErrorList.Add(rsThereAreNoLp);
|
||||
stringPackageFiles.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
// Remembered to type 'zip'?
|
||||
if (Length(editName.Text) > 4) then
|
||||
if (RightStr(LowerCase(editName.Text), 4) <> '.zip') then
|
||||
begin
|
||||
slErrorList.Add(rsUpdateZipNam2);
|
||||
editName.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
// A full URL?
|
||||
if ((Length(editDownloadURL.Text) > 0) and (RightStr(editDownloadURL.Text, 1) = '/'))
|
||||
then
|
||||
begin
|
||||
slErrorList.Add(rsDownloadURLI2);
|
||||
editDownloadURL.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
if ((Length(editDownloadURL.Text) > 4) and
|
||||
(LeftStr(LowerCase(editDownloadURL.Text), 4) <> 'http')) then
|
||||
begin
|
||||
slErrorList.Add(rsDownloadURLS);
|
||||
editDownloadURL.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
if (Pos(Lowercase(editName.Text), Lowercase(editDownloadURL.Text)) = 0) then
|
||||
begin
|
||||
slErrorList.Add(rsDownloadURLD);
|
||||
editDownloadURL.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
// Check package files entries
|
||||
if (stringPackageFiles.RowCount > 1) then
|
||||
for iCount := 1 to stringPackageFiles.RowCount - 1 do
|
||||
begin
|
||||
if (Length(stringPackageFiles.Cells[0, iCount]) = 0) then
|
||||
begin
|
||||
slErrorList.Add(Format(rsTheLpkEntryD2, [iCount]));
|
||||
stringPackageFiles.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
if (Length(stringPackageFiles.Cells[1, iCount]) = 0) then
|
||||
begin
|
||||
slErrorList.Add(Format(rsVersionEntry, [iCount]));
|
||||
stringPackageFiles.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
if (TryStrToVersionQuad(stringPackageFiles.Cells[1, iCount], Quad) = False) then
|
||||
begin
|
||||
slErrorList.Add(Format(rsVersionEntry2, [iCount]));
|
||||
stringPackageFiles.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
if (RightStr(LowerCase(stringPackageFiles.Cells[0, iCount]), 4) <> '.lpk') then
|
||||
begin
|
||||
slErrorList.Add(Format(rsTheLpkEntryD, [iCount]));
|
||||
stringPackageFiles.Color := clYellow;
|
||||
Result := True;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.SaveAsItemClick(Sender: TObject);
|
||||
var
|
||||
i: integer;
|
||||
s: string;
|
||||
begin
|
||||
if ValidationFailed then
|
||||
begin
|
||||
if (slErrorList.Count > 1) then
|
||||
ShowMessage(rsOneOfTheReqn + LineEnding + slErrorList.Text +
|
||||
LineEnding + rsFixThenTryAg)
|
||||
else
|
||||
ShowMessage(rsOneOfTheReq1 + LineEnding + slErrorList.Text +
|
||||
LineEnding + rsFixThenTryAg);
|
||||
Exit;
|
||||
end;
|
||||
if bForceSaveAs or (sJSONFilePath = '') then
|
||||
begin
|
||||
FileSaveAs1.Dialog.InitialDir := sUpdateDirectory;
|
||||
FileSaveAs1.Dialog.FileName:='update_' + ExtractFilenameOnly(editName.text);
|
||||
if FileSaveAs1.Dialog.Execute then
|
||||
sJSONFilePath := FileSaveAs1.Dialog.FileName
|
||||
else
|
||||
Exit;
|
||||
end;
|
||||
|
||||
JSONPackage := TPackage.Create;
|
||||
try
|
||||
JSONPackage.Package.Name := editName.Text;
|
||||
JSONPackage.Package.DownloadURL := editDownloadURL.Text;
|
||||
JSONPackage.Package.ForceUpdate := cbForceUpdate.Checked;
|
||||
|
||||
for i := 1 to stringPackageFiles.RowCount - 1 do
|
||||
begin
|
||||
with JSONPackage.PackageFiles.Add do
|
||||
begin
|
||||
Name := stringPackageFiles.Cells[0, i];
|
||||
Version := stringPackageFiles.Cells[1, i];
|
||||
end;
|
||||
end;
|
||||
if FileExistsUTF8(sJSONFilePath) AND (bDisableWarnings=FALSE) then
|
||||
begin
|
||||
if MessageDlg(rsOverwrite + ' ' + sJSONFilePath + '?', mtConfirmation,
|
||||
[mbYes, mbNo], 0, mbYes) = mrYes then
|
||||
if JSONPackage.SaveToFile(sJSONFilePath) then
|
||||
ShowMessage(sJSONFilePath + ' ' + rsSavedOK);
|
||||
end
|
||||
else
|
||||
if JSONPackage.SaveToFile(sJSONFilePath) then
|
||||
ShowMessage(sJSONFilePath + rsSavedOK);
|
||||
bDirty := False;
|
||||
finally
|
||||
JSONPackage.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.sb_editNameClick(Sender: TObject);
|
||||
var
|
||||
s: string;
|
||||
begin
|
||||
FileOpen1.Dialog.InitialDir :=
|
||||
CFG.ReadString('Options', 'LastLoadedZipPath', sZipDirectory);
|
||||
FileOpen1.Dialog.Filter := rsUpdate + ' ZIP|*.zip';
|
||||
if FileOpen1.Dialog.Execute then
|
||||
begin
|
||||
// Offer to copy to /updates?
|
||||
sZipDirectory := ExtractFileDir(FileOpen1.Dialog.Filename);
|
||||
CFG.WriteString('Options', 'LastLoadedZipPath', sZipDirectory);
|
||||
s := ExtractFileName(FileOpen1.Dialog.Filename);
|
||||
editName.Text := s;
|
||||
if MessageDlg(Format(rsWouldYouLike, [s, sUpdateDirectory]),
|
||||
mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then
|
||||
begin
|
||||
if CopyFile(FileOpen1.Dialog.Filename, sUpdateDirectory +
|
||||
DirectorySeparator + s) then
|
||||
ShowMessageFmt(rsSWasSuccessf, [s, sUpdateDirectory])
|
||||
else
|
||||
ShowMessage(rsSorryCopyOpe);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.spd_CheckURLClick(Sender: TObject);
|
||||
// Show a popup notification because it takes time to open a browser window
|
||||
var
|
||||
bTemp: boolean;
|
||||
begin
|
||||
if OpenURL(editDownloadURL.Text) then
|
||||
begin
|
||||
bTemp := bShowPopupHints;
|
||||
bShowPopupHints := True;
|
||||
CtrlShowPopup(spd_CheckURL);
|
||||
bShowPopupHints := bTemp;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TPackage }
|
||||
|
||||
constructor TPackage.Create;
|
||||
begin
|
||||
FPackage := TPackageData.Create;
|
||||
FPackageFiles := TPackageFilesList.Create;
|
||||
end;
|
||||
|
||||
destructor TPackage.Destroy;
|
||||
var
|
||||
c: TCollectionItem;
|
||||
begin
|
||||
FPackage.Free;
|
||||
for c in FPackageFiles do
|
||||
c.Free;
|
||||
FPackageFiles.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TPackage.LoadFromFile(AFileName: string);
|
||||
var
|
||||
DeStreamer: TJSONDeStreamer;
|
||||
s: TStringList;
|
||||
begin
|
||||
s := TStringList.Create;
|
||||
s.LoadFromFile(AFileName);
|
||||
DeStreamer := TJSONDeStreamer.Create(nil);
|
||||
DeStreamer.JSONToObject(s.Text, Self);
|
||||
DeStreamer.Free;
|
||||
s.Free;
|
||||
end;
|
||||
|
||||
function TPackage.SaveToFile(AFileName: string): boolean;
|
||||
var
|
||||
Streamer: TJSONStreamer;
|
||||
s: TStringList;
|
||||
begin
|
||||
Result := False;
|
||||
s := TStringList.Create;
|
||||
try
|
||||
Streamer := TJSONStreamer.Create(nil);
|
||||
Streamer.Options := Streamer.Options + [jsoUseFormatString];
|
||||
s.AddText(Streamer.ObjectToJSONString(Self));
|
||||
try
|
||||
s.SaveToFile(AFileName);
|
||||
Result := True;
|
||||
except
|
||||
ShowMessage(rsSaveUnsucces);
|
||||
end;
|
||||
finally
|
||||
Streamer.Free;
|
||||
s.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user